Geokódování v Powershellu pomocí Google Maps

Geokódování je proces, při němž se k zadané adrese dohledávají zeměpisné souřadnice. S využitím Google Maps API Web Services je to pomocí Powershellu velmi jednoduché.

Google Maps API Web Services vrací na požadavek JSON nebo XML dokument, který obsahuje informaci o adrese, souřadnice adresy a souřadnice pro optimální zobrazení.

Pro získání zmíněného výstupu stačí poslat požadavek s patřičnými parametry na adresu:

https://maps.googleapis.com/maps/api/geocode/output?parameters

V tomto případě použijeme XML dokument.

$xmld = New-Object System.Xml.XmlDocument
$xmld.Load("https://maps.googleapis.com/maps/api/geocode/xml?address=$input")

Pro vyhledání adresy je celkem jedno, jak je vstupní řetězec $input formátován a zda obsahuje třeba jen město a ulici bez čísla (pak je nalezeno místo prvního čísla v hledané ulici).

Výsledkem je tedy XML dokument v proměnné $xmld, ve kterém již můžeme hledat konkrétní informace, např.

Status výsledku hledání (OK, ZERO_RESULTS, OVER_QUERY_LIMIT,…)
$xmld.GeocodeResponse.status
Standardně formátovaná plná adresa
$xmld.GeocodeResponse.result.formatted_address
Souřadnice zeměpisné šířky (latitude)
$xmld.GeocodeResponse.result.geometry.location.lat
Souřadnice zeměpisné délky (longitude)
$xmld.GeocodeResponse.result.geometry.location.lng

V Powershellu se pak můžeme opakovaně dotazovat na různé adresy v rámci cyklů, Google Geocoding API má však následují limity:
Pro použití free API:
2,500 požadavků za 24 hodin
5 požadavků za sekundu
Při použití Google Maps API for Work:
100,000 požadavků za 24 hodin
10 požadavků za sekundu.

Podrobnější informace o Google Maps API Web Services – Geocoding API najdete na:
https://developers.google.com/maps/documentation/geocoding/

Komentáře nejsou povoleny.