日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

geopy 在python中的使用

發布時間:2024/8/26 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 geopy 在python中的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://blog.csdn.net/learn_tech/article/details/80756788

2018年06月21日 10:35:52 learn_tech 閱讀數:1182

轉載地址:https://blog.csdn.net/Next_Second/article/details/78618081?locationNum=2&fps=1

???????????????? http://www.cnblogs.com/aiyuxi/p/6310035.html

geopy是一個關于地理編碼的python庫。主要有以下幾個功能:(需要聯網)

  • 地理編碼:將字符串轉換為地理位置
  • 逆地理編碼:用于將地理坐標轉換為具體地址
  • 計算兩個點的距離:經緯度距離和球面距離
  • 安裝

    pip install geopy



    使用

    地理編碼

    >>> from geopy.geocoders import Nominatim >>> geolocator = Nominatim() >>> location = geolocator.geocode("天安門") >>> print(location.address) 天安門, 東長安街, 崇文, 北京市, 東城區, 北京市, 100010, 中國 >>> print((location.latitude, location.longitude)) (39.9073285, 116.391242416486) >>> print(location.raw) {'class': 'building', 'boundingbox': ['39.9072282', '39.9075301', '116.3906498', '116.3918383'], 'place_id': '74005413', 'lon': '116.391242416486', 'osm_type': 'way', 'osm_id': '25097203', 'importance': 0.111, 'display_name': '天安門, 東長安街, 崇文, 北京市, 東城區, 北京市, 100010, 中國', 'type': 'yes', 'licence': 'Data ? OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright', 'lat': '39.9073285'} >>>

    逆地理編碼

    >>> from geopy.geocoders import Nominatim >>> geolocator = Nominatim() >>> location = geolocator.reverse("34.224719, 108.9427484") >>> print(location.address) 海底撈, 長安北路, 小寨, 雁塔區, 雁塔區 (Yanta), 西安市, 陜西省, 710061, 中國 >>> print((location.latitude, location.longitude)) (34.2253171, 108.9426205) >>> print(location.raw) {'lon': '108.9426205', 'display_name': '海底撈, 長安北路, 小寨, 雁塔區, 雁塔區 (Yanta), 西安市, 陜西省, 710061, 中國', 'boundingbox': ['34.2252171', '34.2254171', '108.9425205', '108.9427205'], 'licence': 'Data ? OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright', 'address': {'county': '雁塔區 (Yanta)', 'country': '中國', 'road': '長安北路', 'state_district': '西安市', 'restaurant': '海底撈', 'neighbourhood': '小寨', 'country_code': 'cn', 'postcode': '710061', 'state': '陜西省', 'town': '雁塔區'}, 'place_id': '58165875', 'lat': '34.2253171', 'osm_id': '4516338791', 'osm_type': 'node'} >>>

    計算距離

    單位可以為

    • meters 米(簡寫m)
    • kilometers 千米(簡寫km)
    • miles 英里(簡寫mi)
    • nautical 海里(簡寫nm)
    • feet 英尺(簡寫ft)

    具體可參考源代碼

    計算經緯度距離Vincenty distance

    >>> from geopy.distance import vincenty >>> tiananmen = (39.9073285, 116.391242416486) >>> xiaozhai = (34.2253171, 108.9426205) >>> print(vincenty(tiananmen, xiaozhai).meters) 913925.3164971869 >>>

    計算球面距離great-circle distance

    >>> from geopy.distance import great_circle >>> tiananmen = (39.9073285, 116.391242416486) >>> xiaozhai = (34.2253171, 108.9426205) >>> print(great_circle(tiananmen, xiaozhai).meters) 913913.5874054108 >>>

    參考

    geopy Github地址?
    geopy使用詳解

    ?

    geopy使用詳解

      由于專業需要,經常接觸一些地理處理的工具包,文檔都是英文的,自己看的同時將其翻譯一下,一方面自己學習的同時有個記錄,要是能同時給一起的學習的童鞋們一些幫助,想想也是極好的。以下的文檔內容主要翻譯自官方文檔,水平有限,錯誤的地方希望大家指出。

      處理地理數據經常會涉及到地理編碼的問題。地理編碼指的是將地理信息轉化成坐標關系的過程。分為正向和反向的編碼。正向的是指將地址信息轉換為坐標點,比如:武漢市武漢大學-->(114.3594147, 30.5401222);反向地理編碼就是將地理坐標轉換為具體的地址,是一個與前面相反的過程。

      基于python的地理編碼庫geopy?是用于地理編碼的常用工具,使用它 可獲取多種地圖服務的坐標。目前Python2和Python3下都支持。Python開發者可以使用geopy很容易的獲取全球的某個街道地址,城市, 國家和地塊的地理坐標,它是通過第三方的地理編碼器和數據源來解析的。

    geopy可以使用的地理定位服務如下:

    OpenStreetMapNominatim,ESRIArcGIS,?GoogleGeocodingAPI(V3),?BaiduMaps,?BingMapsAPI,Yahoo!PlaceFinder,?Yandex,?IGNFrance,?GeoNames,?NaviData,OpenMapQuest,?What3Words,?OpenCage,?SmartyStreets,?geocoder.us, and?GeocodeFarm等. 這些豐富的地理編碼器在geopy.geocoders模塊下面,它提供各個地理定位服務的API類。每個地理編碼器至少定義了一個geocode方法, 用于將字符串轉換為地理位置;也定義了一個reverse方法,用于將地理坐標轉換為具體地址。每個地理編碼器需要接受認證和設置才能使用它的服務,例 如:在初始化時,需要一個API key或者locale。

    轉載于:https://www.cnblogs.com/fengff/p/11003485.html

    總結

    以上是生活随笔為你收集整理的geopy 在python中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。