前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.7k stars Python实现的地理编码测量距离查询工具

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

作者头像
开源日记
发布2023-03-10 14:40:06
6300
发布2023-03-10 14:40:06
举报
文章被收录于专栏:JVMGC

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitHub数据
  • 安装
  • 举几个例子
    • 地址与坐标计算
      • 坐标查询
      • 距离计算
      相关产品与服务
      代码托管
      CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档