3.7k stars Python实现的地理编码测量距离查询工具

2023-03-10 14:40:06 浏览数 (1)

geopy项目基于 MIT 协议开源,代码托管在 Github 上。是一个关于地理编码的python库。主要有以下几个功能

  • 地理编码:将字符串转换为地理位置
  • 逆地理编码:用于将地理坐标转换为具体地址
  • 计算两个点的距离:经纬度距离和球面距离

GitHub数据

  • 3.7k stars
  • 96 watching
  • 597 forks

开源地址:https://github.com/geopy/geopy

安装

代码语言:javascript复制
pip install geopy

举几个例子

地址与坐标计算

支持众多的电子地图服务,例如著名的 Google、Bing、百度、Here 等

代码语言:javascript复制
from geopy.geocoders import Nominatim
geolocater = Nominatim(user_agent='demo_of_gnss_help')
location = geolocater.geocode('黄鹤楼, 湖北省')
print(location)
黄鹤楼, 和平大道南延, 黄鹤楼街道, 武昌区, 武汉市, 湖北省, 430060, 中国
坐标查询
代码语言:javascript复制
from geopy.geocoders import Nominatim
geolocater = Nominatim(user_agent='demo_of_gnss_help')
location = geolocater.reverse('39.916527, 116.397128')
print(location.address)
东城区, 北京市, 100010, 中国

距离计算

geopy 的距离计算功能包含在 distance 中,下面计算北京到上海的距离。

代码语言:javascript复制
# -*- coding:utf-8 -*-

from geopy.geocoders import Nominatim
from geopy import distance
dist = distance.distance((39.896989, 116.383048), (31.230525, 121.473667))
geolocator = Nominatim(user_agent="test_geo")
location = geolocator.reverse("39.896989, 116.383048")
print(location.address)
location = geolocator.reverse("31.230525, 121.473667")
print(location.address)
print(dist.kilometers)

大耳胡同, 大栅栏街道, 西城区, 北京市, 100032, 中国
延安高架路, 同益里, 南京东路街道, 黄浦区, 上海市, 200002, 中国
1066.0682022690328KM

更多功能广大网友可以继续挖掘。

0 人点赞