我试图创建一个程序来跟踪 IP 地址并将其绘制在地图上,但出现错误: ValueError:位置需要两个(纬度、经度)值,但得到的是:[]。 我正在使用记事本创建文件并使用 cmd 来运行它。
import geocoder
import folium
ip = input('Enter IP to trace: ')
g = geocoder.ip(ip)
location = g.latlng
locationmap1 = folium.Map(location=location, zoom_start=12)
folium.CircleMarker(location=location, radius=50).add_to(locationmap1)
locationmap1.save('locationmap1.html')
locationmap1.show_in_browser()
运行以下代码片段。您遇到的错误是因为当您在无效 IP 上运行
geocoder.id
时,g.latlng 返回一个空数组。我的建议是检查一旦 location
可用,通过检查它是否有效来确保它是有效的。
import geocoder
import folium
ip = "12.215.42.19"
g = geocoder.ip(ip)
location = g.latlng
print(location) // [32.7831, -96.8067]
locationmap1 = folium.Map(location=location, zoom_start=12)
folium.CircleMarker(location=location, radius=50).add_to(locationmap1)