精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

地理位置和經緯度坐標之間如何轉換? Python 教你批量實現

開發 后端
做地圖可視化時需要提供經緯度坐標,但一般來說我們手上拿到的通常只有地理位置,比如說 北京市東大街302號狗不理包子店,可視化之前需經緯度坐標轉換。

[[393824]]

本文轉載自微信公眾號「小張Python」,作者zeroing。轉載本文請聯系小張Python公眾號。   

做地圖可視化時需要提供經緯度坐標,但一般來說我們手上拿到的通常只有地理位置,比如說 北京市東大街302號狗不理包子店,可視化之前需經緯度坐標轉換

需要轉換的數據如果僅有幾個還好,可以直接借助谷歌地圖自帶經緯度查詢手動轉換,但真實場景下需要轉換的數據量可能要上百甚至上千,再手動的話就比較頭疼了

如何將地理位置批量轉化為經緯度坐標?本文將針對這個問題,介紹兩個用 Python 來實現的方法

1,調用第三方 API

最常見辦法就是調用第三方 API,例如百度、高德地圖等服務平臺,提供了相應的功能接口,它們的這類技術已經非常成熟啦,準確穩定,關鍵還是免費的 ~,本期教程以百度為例(高德的用方類似),介紹一下其用法

1.1,用百度賬號登陸百度地圖控制臺

百度地圖開放平臺

1.2,創建一個應用,獲取 AK 參數

登錄控制臺之后,選擇左側 應用管理-> 我的應用 -> 創建應用

創建應用頁面中有三項信息需要填寫

  • 應用名稱,無限制隨意填寫即可;
  • 應用類型 ,選擇服務端;
  • IP 白名單,只是個人簡單測試的話0.0.0.0/0 即可,如果考慮安全問題, 可以將自己的 IP 填進去, AK 參數泄露的話非本機 IP 無法訪問,這樣也不用擔心額度被其他用戶盜用

1.3,地理編碼、逆地理編碼

經緯度地理位置根據轉換方向分為兩類,接下來我們分別演示一下其用法:

  • 地理編碼:將地理地址轉換為坐標點(經緯度);
  • 逆地理編碼,將經緯度轉化為地理地址;

1.3.1 地理編碼,

下面就是 Python 測試代碼塊,將 AK 參數(前面申請到的)和你需要轉換的地理位置拼接到 官方提供的 url 中,用 requests 訪問即可,

  1. import requests 
  2. import json 
  3. import re 
  4.  
  5. AK = '你的AK' 
  6. address ='北京市海淀區上地十街10號' 
  7. url = 'http://api.map.baidu.com/geocoding/v3/?address={}&output=json&ak={}&callback=showLocation'.format(address,AK) 
  8. res = requests.get(url) 
  9.  
  10. print(res.text) 
  11. results = json.loads(re.findall(r'\((.*?)\)',res.text)[0]) 
  12.  
  13. print('\n'
  14. print('location is ',results['result']['location']) 

輸出結果如下

  1. showLocation&&showLocation({"status":0,"result":{"location":{"lng":116.3084202915042,"lat":40.05703033345938},"precise":1,"confidence":80,"comprehension":100,"level":"門址"}})  
  2.  
  3. location is  {'lng': 116.3084202915042, 'lat': 40.05703033345938} 

1.3.2 逆地理編碼

逆地理編與地理編碼用法相似

  1. lat = '40.05703033345938' 
  2. lng = '116.3084202915042' 
  3. AK = '你的AK' 
  4.  
  5.  
  6. url = 'http://api.map.baidu.com/reverse_geocoding/v3/?ak={}&output=json&coordtype=wgs84ll&location={},{}'.format(AK,lat,lng) 
  7.  
  8. res = requests.get(url) 
  9.  
  10. print(res.text) 
  11. address = json.loads(res.text)['result']['formatted_address'
  12.  
  13. print('\n'
  14. print('address is ',address) 

像我們這類免(bai) 費 piao) 用戶,借助百度 API 每天最高可調用 6000 次,這個量級基本上能滿足我們日常需要,但如果這個數量滿足不了你的話,可以在線購買更高的使用額度

2,Geopy

2.1 Geopy 庫介紹

這里介紹一個Python 包 Geopy ,借助它也可以實現經緯度地理位置轉換,

這款包之經緯度轉換原理其實還是借助了第三方 API 平臺,因為市面上提供經緯度轉換 第三方平臺很多,為了方便, Geopy 把這些接口都分別封裝在一個類中,借助 Geopy 模塊來調用,支持的第三放平臺如下

Geopy作為一個專注于地理處理包之外, 除了能實現上面地理編碼、逆地理編碼功能之外,還有一個其它令我經驗的功能, 提供兩個經緯度坐標,計算他們在地球上的最短距離

下面將介紹一下 Geopy 的具體用法,

2. 2 地理編碼

使用 地理編碼功能時,需要借助 Geopy 的 geocoders 模塊,Geopy 把所有第三方API封裝到 geocoders 中

這里選用 OpenStreetMap 平臺上提供的 Nominatim 地理編碼器,因為可以免費供我們使用,不需要申請 API ,但缺點是限流,限額,不能大規模頻繁訪問,否則會返回 403,429錯誤代碼

  1. from geopy.geocoders import Nominatim 
  2. geolocator=Nominatim() 
  3. location= geolocator.geocode("北京市海淀區西二旗北路"
  4. print(location.address) 
  5. print(location.latitude,location.longitude) 

結果如下

  1. 西二旗北路, 東北旺村, 海淀區, 北京市, 102208, 中國 
  2. 40.056793 116.305811 

2.3 逆地理編碼

  1. from geopy.geocoders import Nominatim 
  2. geolocator=Nominatim() 
  3. location= geolocator.reverse("40.056793 116.305811"
  4. print(location.address) 

結果如下

  1. 1#, 西二旗北路, 東北旺村, 海淀區, 北京市, 102208, 中國 

結果看起來還不錯,簡單方便;但提醒一下,因為前面說過 Nominatim 模塊是限額度的,不要頻繁訪問,否則會出現以下錯誤

2.4 根據經緯度計算距離

Geopy 最讓我驚喜的是這個用法,提供兩個經緯度坐標計算他們之間的距離,因為地球具體來說是橢圓,所以不能按照常規方法來計算 ,目前現有比較流行的幾個模型有以下幾個

  1. model             major (km)   minor (km)     flattening 
  2. 'WGS-84':        (6378.137,    6356.7523142,  1 / 298.257223563), 
  3. 'GRS-80':        (6378.137,    6356.7523141,  1 / 298.257222101), 
  4. 'Airy (1830)':   (6377.563396, 6356.256909,   1 / 299.3249646), 
  5. 'Intl 1924':     (6378.388,    6356.911946,   1 / 297.0), 
  6. 'Clarke (1880)': (6378.249145, 6356.51486955, 1 / 293.465), 
  7. 'GRS-67':        (6378.1600,   6356.774719,   1 / 298.25), 

根據官方介紹,官網選擇的是 WGS-84 模型,根據統計最終計算到的距離誤差最高在0.5%左右;使用方法如下

  1. from geopy import distance 
  2. newport_ri = (41.49008, -71.312796) 
  3. cleveland_oh = (41.499498, -81.695391) 
  4. print(distance.distance(newport_ri, cleveland_oh).miles)#最后以英里單位輸出 
  5.  
  6. #output 
  7. 538.39044536 
  8.  
  9. wellington = (-41.32, 174.81) 
  10. salamanca = (40.96, -5.50) 
  11. print(distance.distance(wellington, salamanca).km)# 以 km 作為單位輸出 
  12. 19959.6792674 

3 批量地址坐標轉換

上面聊了這么多知識點,下面引入一個案例來簡單回顧一下;本案例中借助百度API 來實現地理位置坐標轉換,把一個 csv 表格內的所有地址位置數據批量轉換為經緯度

3.1 數據讀取

  1. import pandas as pd 
  2. import string 
  3. data_path = 'H:/Data/Latlon/map-location.csv' 
  4. df = pd.read_csv(data_path,encoding='GB18030'
  5. df 

一共有 98 條數據,每條數據都表示一個地理位置;數據明顯有一些擾亂項,例如左端的數字字符、以及數據中的分隔符\t;因此轉換之前需要對數據進行一次預處理操作

3.2 數據預處理

  1. def process_str(x): 
  2.     # 數據預處理,去掉前面的數字、及字符串中 \t 
  3.     x = str(x).replace('\t',''
  4.     x = str(x).strip(string.digits) 
  5.     return x  
  6. df['location']  = df['location'].apply(process_str) 
  7. df 

預處理結果如下

3.3 地理編碼(經緯度轉換)

  1. import time 
  2. start = time.time() 
  3. AK = '你的AK' 
  4. def get_location(str1): 
  5.     # 獲取經緯度坐標 
  6.     url = 'http://api.map.baidu.com/geocoding/v3/?address={}&output=json&ak={}&callback=showLocation'.format(str1,AK) 
  7.     res = requests.get(url) 
  8.     results = json.loads(re.findall(r'\((.*?)\)',res.text)[0]) 
  9.     return (results['result']['location']['lat'],results['result']['location']['lng']) 
  10. df['(lat,lng)'] = df['location'].apply(get_location) 
  11. print('耗時 {}s'.format(time.time()-start)) 
  12. print(df) 

為了測試轉換效率,這里我加了一個計時器;98 條數據成功轉換后共耗時 4.65s 左右,效率還不錯,要比 Geopy 優秀得多,

3.5 案例源碼數據

我已經把本案例中用到代碼的數據打包再一起了,感興趣的可以在公號后臺回復關鍵字:210418 ,即可獲取!

4. 小結

上面介紹了這么多,最后做個小結;聊一下這兩種方法在 地理坐標轉換方面 各自的優勢和劣勢

第三方API

  • 優勢:地理編碼、逆編碼比較準確,精度高;且支持高并發;
  • 劣勢:不支持國外,環境配置較為復雜;

Geopy (用 Nominatim 模塊的話)

  • 優勢:簡單方便,上手快;支持國外地理編碼
  • 劣勢:不支持并發訪問、效率低且精度較低;

這里給大家一個建議,如果地址數據在國內的話 經緯度轉換 建議用第三方 API,穩定且準確;若是涉及下緯度距離計算、單位換算或地址數據在國外,建議用 Geopy

好了,以上就是本篇文章的全部內容啦,如果對你有所幫助,點個贊是對我最大的鼓勵

責任編輯:武曉燕 來源: 小張Python
相關推薦

2011-10-21 09:28:25

百度地圖API

2024-07-09 08:37:13

2013-05-23 14:43:15

Android開發IP地址經緯度坐標

2025-07-22 04:00:00

HTML5前端瀏覽器

2023-09-13 16:38:09

Geo數據類型Redis

2023-12-11 07:37:08

mongodb經緯度性能

2023-10-27 16:12:29

2013-11-15 15:46:16

Nagios地圖

2023-03-13 22:01:15

ChatGPTPython

2021-08-08 09:19:18

IPinfogaIP地址安全工具

2012-06-14 09:37:45

Google地圖

2012-02-14 16:51:07

HTML 5

2013-07-16 11:16:03

云計算

2012-06-18 15:40:32

jQuery

2013-03-29 10:47:39

Android獲取經緯AndroidGPS定

2023-11-30 08:06:43

Springboot地理位置

2012-02-01 09:33:36

百度地圖API

2012-02-26 21:41:46

手機黑客

2011-11-18 09:28:17

地理位置API

2021-07-05 08:41:49

RedisGEO系統
點贊
收藏

51CTO技術棧公眾號

精品久久对白| 国产成人无吗| 久久久天天操| 永久555www成人免费| 国内外成人激情视频| 飘雪影院手机免费高清版在线观看| 99亚洲一区二区| 国产香蕉97碰碰久久人人| 日本999视频| 久草免费在线观看| 成人看片黄a免费看在线| 秋霞成人午夜鲁丝一区二区三区| 国产 中文 字幕 日韩 在线| 国产伦精品一区二区三区视频金莲| 国产亚洲精品免费| 成人中文字幕+乱码+中文字幕| 欧美日韩一级大片| 最新亚洲精品| 51久久夜色精品国产麻豆| 隔壁人妻偷人bd中字| 欧美色视频免费| 国产综合色视频| 隔壁老王国产在线精品| 一区二区精品免费| 精品视频国内| 天天亚洲美女在线视频| 亚洲精品一区二区三区av| 成人小说亚洲一区二区三区| 日韩精彩视频在线观看| 欧美高清在线观看| 少妇无套高潮一二三区| 中文字幕亚洲在线观看| 欧美色综合网站| 免费看毛片的网址| av在线app| 国产欧美日韩不卡| 精品日本一区二区三区在线观看| 91精品国自产| 久久激情婷婷| 欧美劲爆第一页| 国产又粗又长又黄的视频| 欧美午夜寂寞| 日韩视频国产视频| 午夜宅男在线视频| 欧美aa免费在线| 一级做a爱片久久| 日韩中文一区二区三区| 成人小说亚洲一区二区三区| 精品一区二区精品| 日韩美女免费线视频| 国产在线视频二区| 五月天激情综合网| 一本一本久久a久久精品牛牛影视| 91porn在线| 成人国产精品一区二区网站| 欧洲视频一区二区| 亚洲午夜精品久久久久久人妖| aa在线视频| 亚洲欧洲av一区二区三区久久| 欧日韩一区二区三区| 天天摸天天干天天操| 国产成人午夜精品影院观看视频 | 女同性恋一区二区三区| 成人日韩精品| 91福利在线免费观看| 国产婷婷一区二区三区| www.综合网.com| 一区二区欧美在线观看| 黄色小视频大全| av片在线观看免费| 亚洲视频每日更新| 自拍偷拍亚洲色图欧美| 欧美成人精品一区二区男人看| 国产日本亚洲高清| 日本高清一区| 97视频精彩视频在线观看| 国产免费成人在线视频| 欧美一区二区三区四区五区六区| 男人的天堂av高清在线| 国产欧美精品一区二区色综合| 日本一区二区三区在线视频| 国产福利第一视频在线播放| 日本一区二区三区免费乱视频 | 欧美—级高清免费播放| 自拍偷拍你懂的| 999国产精品视频| 乱亲女秽乱长久久久| 久久久久性色av无码一区二区| 女人色偷偷aa久久天堂| 久久久久久av| 久久黄色精品视频| 日韩精品亚洲专区| 91精品久久久久| jizz中国少妇| 日韩三级一区| 久久93精品国产91久久综合| 亚洲国产精品久久| 国产三级国产精品| 精品国产99| 久久久www成人免费精品| 久久精品波多野结衣| 国产日韩免费| 国产精品欧美一区二区| 国产sm主人调教女m视频| 成人手机电影网| 欧美日韩系列| 国产主播福利在线| 亚洲欧美视频一区| 欧美国产激情视频| 亚洲欧美久久精品| 亚洲成人精品久久久| 日本美女xxx| 欧美日韩国产综合网| 国a精品视频大全| 国产精品51麻豆cm传媒| 丁香亚洲综合激情啪啪综合| 日韩精品一区二区三区外面 | 无码aⅴ精品一区二区三区| 蜜臀国产一区二区三区在线播放| 7777奇米亚洲综合久久| 青青草在线免费观看| √…a在线天堂一区| 国产免费黄视频| av国产精品| 日韩精品视频在线| 欧美一区二区三区观看| 欧美一区二区| 国产精品久久久久久久久久久久久久 | 久久91亚洲精品中文字幕奶水| 国产精品视频免费播放| 国内一区二区在线| 日本黑人久久| 岛国av在线播放| 日韩一区二区三区视频在线观看| 日韩av一二区| 午夜电影亚洲| 国产欧美日韩高清| 可以在线观看的av网站| 午夜精品久久久久影视| 久久久久亚洲av无码麻豆| 午夜精品福利影院| 欧美极品少妇与黑人| 国产美女免费看| 国产精品免费视频一区| www日韩视频| 人人网欧美视频| 欧美日韩第一页| 一二区在线观看| 国产偷国产偷亚洲高清人白洁| 成年人看的毛片| 日韩中文在线| 欧美尺度大的性做爰视频| 自拍偷拍精品视频| 国产日韩欧美高清在线| 日日橹狠狠爱欧美超碰| 成人动态视频| 久久免费视频观看| 91片黄在线观看喷潮| 国产精品嫩草99a| jizz18女人| 久久久影院免费| 国产日韩精品视频| 欧美人xxx| 欧美三级电影一区| 大吊一区二区三区| 免费看黄色91| 伊人情人网综合| 视频欧美精品| 久久国产精品久久久久| 99视频在线观看免费| 亚洲黄色录像片| xxxx视频在线观看| 伊人激情综合| 久久波多野结衣| 日韩成人动漫| 中文字幕日韩av综合精品| 国产麻豆91视频| 亚洲欧美福利一区二区| 日本黄色大片在线观看| 国产欧美日韩亚洲一区二区三区| 麻豆传媒一区二区| 精品成人免费一区二区在线播放| 国产午夜精品一区理论片飘花| 无码久久精品国产亚洲av影片| 中文字幕精品综合| 亚洲色图偷拍视频| 国产一区美女| 欧美综合激情| 99视频这里有精品| 久久久久久中文字幕| 日本免费一区二区三区最新| 色噜噜狠狠色综合欧洲selulu| 欧美黄色高清视频| 国产精品77777竹菊影视小说| 国产夫妻自拍一区| 亚洲人成精品久久久 | 亚洲欧洲自拍| 在线视频欧美性高潮| 国产99对白在线播放| 香蕉影视欧美成人| 中国女人特级毛片| 国产精品性做久久久久久| 无码粉嫩虎白一线天在线观看 | 欧美激情aⅴ一区二区三区| 99www免费人成精品| 成人性生交大片免费网站 | 在线黄色免费网站| 日韩成人一级片| 九一免费在线观看| 91视频精品| 久久影院模特热| 国产小视频一区| 日本韩国精品在线| 欧美日韩免费做爰视频| 久久综合av免费| 亚洲xxx在线观看| 欧美午夜不卡| 日韩欧美精品一区二区| 无人区乱码一区二区三区| 人体精品一二三区| 午夜国产福利在线| 亚洲精美色品网站| 国产又粗又黄又爽的视频| 精品国产91久久久久久| a资源在线观看| 成人高清伦理免费影院在线观看| 91n.com在线观看| 亚洲欧洲另类| 黄频视频在线观看| 中文有码一区| 国产不卡一区二区在线观看| 国产精品久久久久久吹潮| 91国语精品自产拍在线观看性色| 2021av在线| 亚洲男人7777| 懂色av蜜臀av粉嫩av分享吧| 精品1区2区3区| www欧美在线| 亚洲综合一区二区精品导航| 人人妻人人澡人人爽人人精品 | 亚洲黄色尤物视频| 精品视频第一页| 91美女精品福利| 中文字幕久久久久久久| 麻豆91在线看| 91av俱乐部| 校园春色综合网| 自拍日韩亚洲一区在线| 国产精品magnet| 亚洲色图自拍| 成人免费看片39| 热re99久久精品国99热蜜月| 国产欧美一区二区三区米奇| 99re国产| 欧美高清一级片| 亚洲影院污污.| 91精品一区| 成人动漫网站在线观看| 成人亚洲视频| 国产99视频精品免视看7| 最新中文字幕在线播放| …久久精品99久久香蕉国产| 视频在线观看入口黄最新永久免费国产| 视频直播国产精品| 九色在线免费| 亚洲天堂日韩电影| 国产色a在线| 最近免费中文字幕视频2019| 国产福利在线观看| 最近的2019中文字幕免费一页 | 天天躁日日躁成人字幕aⅴ| 久久久久资源| 青青草国产免费一区二区下载| 亚洲欧美久久234| 牛牛国产精品| 日韩欧美国产免费| 久久69国产一区二区蜜臀| 久久久久亚洲av片无码v| 99久久精品国产观看| 白白色免费视频| 亚洲另类在线制服丝袜| 日本中文字幕免费| 欧美日韩亚洲高清一区二区| 国内精品偷拍视频| 亚洲美女免费精品视频在线观看| 91精品大全| 高清欧美性猛交xxxx| 51一区二区三区| 国产精品久久国产三级国电话系列| 网友自拍区视频精品| 综合操久久久| 亚洲欧美日韩一区在线观看| 中文字幕视频三区| 97精品电影院| 性欧美videos| 色婷婷综合久久久中文一区二区 | 日本三级福利片| 在线视频日韩| 亚洲高清av一区二区三区| 91丨porny丨国产入口| 韩国一级黄色录像| 一本到一区二区三区| 国产成人精品一区二三区四区五区| 日韩精品中文字幕视频在线| 很黄的网站在线观看| 国产精品福利在线观看| 国产suv精品一区二区四区视频| 日韩高清国产一区在线观看| 国产综合网站| 国产无色aaa| 久久精品亚洲国产奇米99| 精品无码久久久久久久| 在线综合视频播放| xxxxx日韩| 欧美在线一级视频| 91久久精品无嫩草影院| 一区二区三区四区欧美日韩| 国产伦理一区| 亚洲啪av永久无码精品放毛片| 国产精品国产三级国产aⅴ中文| www.国产色| 亚洲国产精品国自产拍av秋霞| 调教一区二区| 91系列在线观看| 欧美疯狂party性派对| 成熟老妇女视频| 97se亚洲国产综合自在线不卡| 强行糟蹋人妻hd中文| 欧美一区二区在线免费播放| av在线电影免费观看| 日本不卡免费高清视频| 亚洲精品亚洲人成在线观看| 人妻夜夜添夜夜无码av| 国产成人免费视| 欧美成欧美va| 91精品国产麻豆国产自产在线| 在线看黄色av| 国产欧美一区二区三区视频| 成人羞羞网站| 亚洲污视频在线观看| 国产精品私人影院| 中文字幕免费高清在线观看| 亚洲小视频在线| 台湾佬成人网| 婷婷久久伊人| 免费xxxx性欧美18vr| 国产免费嫩草影院| 欧美三级日本三级少妇99| 日本综合在线| 91精品国自产在线观看| 国内精品美女在线观看| 麻豆传媒在线看| 亚洲国产日韩a在线播放| 黄频在线免费观看| 午夜精品福利视频| 日韩福利视频一区| 日韩中文字幕免费在线| 中文字幕不卡的av| 亚洲天堂男人网| 久久视频中文字幕| 6080成人| 国产淫片免费看| 国产精品无人区| 国产免费av电影| 久久青草精品视频免费观看| 欧美三级电影在线| 无码内射中文字幕岛国片| 国产精品久久久久久久蜜臀 | 国产综合色激情| 日韩精品一区二区三区电影| 成人永久aaa| 亚洲图片欧美日韩| 久久天天躁狠狠躁老女人| 亚洲一区二区免费在线观看| 免费在线a视频| 国产精品视频一二三区| 国产熟女一区二区三区四区| 久久久噜噜噜久久中文字免| 亚洲电影一级片| 国产探花在线看| 亚洲观看高清完整版在线观看| 色鬼7777久久| 国产日韩中文在线| 亚洲三级电影在线观看| 亚洲ⅴ国产v天堂a无码二区| 日韩欧美电影一二三| 国产精品粉嫩| av动漫在线免费观看| 久久综合网色—综合色88| 91精品人妻一区二区三区果冻| 欧美大片免费观看| 国产调教一区二区三区| 99国产精品免费视频| 在线亚洲一区观看| heyzo中文字幕在线| 亚洲精品日韩精品| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产精品影片在线观看| 激情亚洲成人| 婷婷社区五月天|