这是我获取电话号码位置的代码。我获得了我所在国家/地区的 GPS 位置,但不知道我所在的位置。有什么方法可以修复代码来做到这一点吗?
import phonenumbers
import folium
from target import number
from phonenumbers import geocoder
theNumber = phonenumbers.parse(number)
yourLocation = geocoder.description_for_number(theNumber, "en")
print(yourLocation)
#Other details
from phonenumbers import carrier
service_provider = phonenumbers.parse(number)
print(carrier.name_for_number(service_provider, "en"))
from opencage.geocoder import OpenCageGeocode
geocoder = OpenCageGeocode(key)
query =str(yourLocation)
results = geocoder.geocode(query)
#print(results)
lat = results[0]['geometry']['lat']
long = results[0]['geometry']['lng']
print(lat, long)
myMap = folium.Map(location =[lat, long], zoom_start= 0)
folium.Marker([lat , long], popup= yourLocation).add_to(myMap)
#html save
myMap.save("myLoc.html")
phonenumbers
库只会返回国家/地区名称。使用 OpenCage 地理编码器会将国家/地区名称转换为位置(国家/地区的中心)。图书馆或服务机构永远都不知道您在哪里。
该代码遵循在几个 Youtube 视频上共享的教程。在视频中,演示者展示了一个他们认为准确的位置。或者他们说他们想保护自己并使用不同的位置。但它始终是国家的中心(通常是印度或巴基斯坦)。
“这是不可能的,而且从来都不可能使用 OpenCage API 跟踪任何人”。
https://blog.opencagedata.com/post/we-can-not-convert-a-phone-number-into-a-location-sorry
阅读 OpenCage 的这篇官方文章,该文章完全承认这是不可能的,因为它被认为是不道德的。
所以请不要尝试这样做,因为这被认为是不道德的。”