Geocoding
The geocoding (geolocalization, DE:Geokodierung) is the process of finding associated geographic coordinates (e.g. latitude/longitude or northing/easting) from other geographic data, such as addresses (street name and street or building number), postal codes or place names. Since address data is a laborious data (like most geospatial data) and often copyrighted there is no single free solution or service.
Inhaltsverzeichnis
Geocoding Data
- Nominatim - OpenStreetMap place names: http://nominatim.osm.org/
- OSMNames: http://osmnames.org/
- Geonames.org: http://www.geonames.org/
- Who's on first: https://whosonfirst.mapzen.com/
- Quattroshapes by Foursquare (see e.g. https://allaroundgis.wordpress.com/2016/01/12/quattroshapes/ )
- Alpha Shapes by Flickr.com
>> The section below is outdated and needs to be updated <<
Given a local spreadsheet with not-yet-geocoded address data, there are following current solutions:
- ArcGIS Online or Google Fusion Tables (data source for both: Google): no programming, webbased service, data needs to be uploaded, needs Google or AGOL account => See ArcGIS Online and Esri Help Pages.
- Google Docs with App Script (data source: Google): predefined scripts, webbased service, data needs to be uploaded => See https://github.com/mapbox/geo-googledocs .
- Mapquest (data source: Nominatim/OpenStreetMap): predefined scripts, webbased service, data remains locally => See http://schoolofdata.org/handbook/recipes/geocoding/ .
- SpatiaLite (data source: MOPublic/Swiss Cadastre and Statistics): local sw, local data, predefined scripts. See SpatiaLite.
Geocoding im Web
- Eine Adresse aufs Mal
- Nominatim by OpenStreetMap (volunteering maintainers).
- Pelias by MapZen (and OpenStreetMap data)
- Eagle (Geocode.com / Tele Atlas)
- Geocoding Service - TravelGIS.com (eine Adresse aufs Mal)
- Service des Netzwelt-Magazin (eine Adresse aufs Mal)
- Weitere:
- http://www.geonames.org/export/web-services.html#postalCodeSearch (kostenlos).
- Geocoding-Liste, insbesondere Geocodierung von Internet-Adressen.
- (OpenAddresses)
Geocoding APIs
- OpenCage Geocoder [1]
- MapQuest Open Geocoding API Service ([2]) (und weitere [3]) (Beschränkungen: Gibt nur Ortschaft/Strasse zurück?; Lizenz: CC-BY-SA)
- Yahoo BOSS Geo Services (kostenpflichtig!)
'Yahoo! PlaceFinder API' Service (Beschränkungen: mit API-Key; max. 50'000 Requests/Tag; Lizenz: ???) - 'Bing Maps APIs' (Beschränkungen: mit API-Key? unübersichtlich; Lizenz: ???).
- Geoadmin API (Beschränkungen: verschiedene; ?; Lizenz: Bund...???)
- Geonames findNearestIntersectionOSM oder postalCodeSearch (Beschränkungen: availability; Lizenz: "free"/CC-BY-SA)
- 'Google Maps Geocoding API' Service (Beschränkungen: nur 2'500 Requests/Tag und Resultat muss im Web sichtbar gemacht werden)
- tinygeocoder.com:
- GeoAdmin API 2.5, SwissSearch: geocoding and SwissSearch: reversegeocoding [6]
- Nominatim
Geocoding mit MS Excel
Geocoding von Adressen aus Excel mit VB programmiert
- Juice Analytics: Geocodiert einzeln/mehrere Adressen international (Basis Yahoo Webservice) sowie Google Earth ()-Output. Hinweis: Dazu muss man a) einen Yahoo-Account haben und b) eine Application-ID (Authentisierungs-Typ Generic) beziehen; beides ist kostenlos. zum Download...
- Weiterentwicklung mit Google Maps (falls mehrere Adressen codiert werden sollen, yahoo_id = "YahooDemo" ersetzen durch eigene Application-ID): zum Download...
Geocoding mit QGIS
- Plugin: http://plugins.qgis.org/plugins/GeoCoding/ - arbeitet nur mit einer Adresse auf's Mal.
- Mögliche Quellen: Nominatim oder bing.
Siehe auch:
Geocoding mit Python
Siehe auch: Python.
"Géocoder en masse plusieurs milliers d’adresses avec Python et Nominatim" par AdrienVH, le 18/01/2015 [7].
""" ==================================================== geocode.py - a geocoder based on OSM / Nominatim Dependencies: GeoPy Input : File adresses.csv Output : File resultat.csv ==================================================== """ import csv from geopy.geocoders import Nominatim # needs GeoPy lib! geocoder = Nominatim() inputFile = open('adresses.csv', 'rb') outputFile = open('resultat.csv', 'w') try: outputData = csv.writer(outputFile, delimiter=';', lineterminator='\n') outputData.writerow(('adresse', 'latitude', 'longitude')) inputData = csv.reader(inputFile, delimiter=';') for ligne in dataInput: adresse = ligne[0] + ", " + ligne[1] try: location = geocoder.geocode(adresse, True, 30) outputData.writerow((adresse, location.latitude, location.longitude)) except Exception as inst: print inst finally: inputFile.close() outputFile.close()
Weblinks
Generell/Liste: http://del.icio.us/search/?all=geocoding