Python 根据地址获取经纬度及求距离
生活随笔
收集整理的這篇文章主要介紹了
Python 根据地址获取经纬度及求距离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一:
使用Geopy包 : https://github.com/geopy/geopy ? (僅能精確到城鎮,具體街道無結果返回)
from geopy.geocoders import Nominatim#使用geopy查詢 def geocodeN(address):gps=Nominatim()location=gps.geocode(address)return location.longitude,location.latitude?
方法二:
使用高德地圖或百度地圖API,key可去官網申請替換
import requests#使用高德API def geocodeG(address):par = {'address': address, 'key': 'cb649a25c1f81c1451adbeca73623251'}base = 'http://restapi.amap.com/v3/geocode/geo'response = requests.get(base, par)answer = response.json()GPS=answer['geocodes'][0]['location'].split(",")return GPS[0],GPS[1]#使用百度API def geocodeB(address):base = url = "http://api.map.baidu.com/geocoder?address=" + address + "&output=json&key=f247cdb592eb43ebac6ccd27f796e2d2"response = requests.get(base)answer = response.json()return answer['result']['location']['lng'],answer['result']['location']['lat']?
計算兩個經緯度間距離:
from math import radians, cos, sin, asin, sqrt#計算兩點間距離-m def geodistance(lng1,lat1,lng2,lat2):lng1, lat1, lng2, lat2 = map(radians, [lng1, lat1, lng2, lat2])dlon=lng2-lng1dlat=lat2-lat1a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 dis=2*asin(sqrt(a))*6371*1000return dis?
轉載于:https://www.cnblogs.com/liangto/p/6287957.html
總結
以上是生活随笔為你收集整理的Python 根据地址获取经纬度及求距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP 通过sumbit调用另外一个程
- 下一篇: Knockout v3.4.0 中文版教