Python Geocoder

来源:互联网 发布:云计算炒作概念股 编辑:程序博客网 时间:2024/04/28 21:56

Python模块,使用简单,可利用Google或Bing提供的geocoding服务,获取标准化的地理坐标等结构化信息。

项目主页:https://github.com/DenisCarriere/geocoder

Simple and consistent geocoding library written in Python.

Many online providers such as Google & Bing have geocoding services, these providers do not include Python libraries and have different JSON responses between each other.

It can be very difficult sometimes to parse a particular geocoding provider since each one of them have their own JSON schema.

Here is a typical example of retrieving a Lat & Lng from Google using Python, things shouldn't be this hard.

>>> import requests>>> url = 'https://maps.googleapis.com/maps/api/geocode/json'>>> params = {'sensor': 'false', 'address': 'Mountain View, CA'}>>> r = requests.get(url, params=params)>>> results = r.json()['results']>>> location = results[0]['geometry']['location']>>> location['lat'], location['lng'](37.3860517, -122.0838511)

Now lets use Geocoder to do the same task.

>>> import geocoder>>> g = geocoder.google('Mountain View, CA')>>> g.latlng(37.3860517, -122.0838511)

Documentation

https://geocoder.readthedocs.org/

API Overview

Many properties are available once the geocoder object is created.

Forward

>>> import geocoder>>> g = geocoder.google('Mountain View, CA')>>> g.geojson>>> g.json>>> g.wkt>>> g.osm

Reverse

>>> g = geocoder.google([45.15, -75.14], method='reverse')>>> g.city>>> g.state>>> g.state_long>>> g.country>>> g.country_long

House Addresses

>>> g = geocoder.google("453 Booth Street, Ottawa ON")>>> g.housenumber>>> g.postal>>> g.street>>> g.street_long

IP Addresses

>>> g = geocoder.ip('199.7.157.0')>>> g = geocoder.ip('me')>>> g.latlng>>> g.city

Bounding Box

Accessing the JSON & GeoJSON attributes will be different

>>> g = geocoder.google("Ottawa")>>> g.bbox{"northeast": [45.53453, -75.2465979], "southwest": [44.962733, -76.3539158]}>>> g.geojson['bbox'][-76.3539158, 44.962733, -75.2465979, 45.53453]>>> g.southwest[44.962733, -76.3539158]

Command Line Interface

$ geocode "Ottawa, ON"  >> ottawa.geojson$ geocode "Ottawa, ON" \    --provide google \    --out geojson \    --method geocode

Providers

ProviderOptimalUsage PolicyArcGISWorld BaiduChinaAPI keyBingWorldAPI keyCanadaPostCanadaAPI keyFreeGeoIPWorld Geocoder.caCA & USRate LimitGeocodeFarmWorldPolicyGeoNamesWorldUsernameGeoOttawaOttawa GoogleWorldRate Limit, PolicyHEREWorldAPI keyIPInfoWorld MapboxWorldAPI keyMapQuestWorldAPI keyMapzenWorldAPI keyMaxMindWorld OpenCageWorldAPI keyOpenStreetMapWorldPolicyTamuUSAPI keyTomTomWorldAPI keyWhat3WordsWorldAPI keyYahooWorld YandexRussia TGOSTaiwan 

Installation

PyPi Install

To install Geocoder, simply:

$ pip install geocoder

GitHub Install

Installing the latest version from Github:

$ git clone https://github.com/DenisCarriere/geocoder$ cd geocoder$ python setup.py install
0 0
原创粉丝点击