如何从经纬度过滤国家?
How to filter country from latitude and longitude?
我有一个 200 万行的 CSV。只有两列纬度和经度。我想过滤一个国家。例如,我只想过滤印度的纬度和经度。
有两种方法可以通过经纬度查找国家/地区,即在线和离线。我将在下面解释两者:
在线
您需要安装一个名为 geopy
的软件包
pip install geopy
以下代码可让您使用 OpenStreetMap 地理编码 Web 服务对纬度和经度进行反向地理编码
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="test_app") # enter a name for your app
location = geolocator.reverse("27.1751, 78.0421")
print(location.raw['address']['country'])
然而,它并不可靠。
离线
更好的选择是使用离线地理编码 reverse-geocode
pip install reverse-geocode
这是示例代码
import reverse_geocode
coords = (27.1751, 78.0421), (28.5245, 77.1855)
reverse_geocode.search(coords)
我有一个 200 万行的 CSV。只有两列纬度和经度。我想过滤一个国家。例如,我只想过滤印度的纬度和经度。
有两种方法可以通过经纬度查找国家/地区,即在线和离线。我将在下面解释两者:
在线
您需要安装一个名为 geopy
pip install geopy
以下代码可让您使用 OpenStreetMap 地理编码 Web 服务对纬度和经度进行反向地理编码
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="test_app") # enter a name for your app
location = geolocator.reverse("27.1751, 78.0421")
print(location.raw['address']['country'])
然而,它并不可靠。
离线
更好的选择是使用离线地理编码 reverse-geocode
pip install reverse-geocode
这是示例代码
import reverse_geocode
coords = (27.1751, 78.0421), (28.5245, 77.1855)
reverse_geocode.search(coords)