Často jsem při vývoji aplikací potřeboval funkci, která by mi převedla adresu na GPS pozici, která je nutná při použití dynamických map, ať už od strýčka googla nebo psa seznama.
Kdo to neví – opravdu, ale opravdu není potřeba vyhledávat GPS souřadnice ručně na základě zadané adresy do nějaké mapové aplikace. Od toho jsou tady tzv. API. Tedy rozhraní, na které pošlete HTTP požadavek a on vám vrátí nějakým způsobem přechroustaná data.
Knihovna Geo Locator je důsledkem jednoho odpoledního afektu, kdy už jsem odmítl psát jednu věc pětkráte jinak. Třidy zvládají dolovat geo data ze služeb Google Maps API i Yahoo PlaceFinder. Záleží jen na Vás, kterou ze služeb si zvolíte. Google Maps je zcela jistě přesnější a obsahuje větší databázi adres. Na druhou stranu je počet dotazů omezen na 3 000 denně, což občas stačit nemusí a pro tyto případy je tady možnost použít geolokaci od Yahoo, jehož limity končí u 50 000 dotazů denně a to už je myslím dostatečné číslo na hodně věcí.
Pro načtení souborů stačí vložit do php souboru:
require('GeoLocator.class.php');
require('YahooGeoLocator.class.php');
require('GoogleGeoLocator.class.php');
Inicializace ze pak velmi jednoduchá:
$googleApiKey= '';//nepovinny parametr pro pristup ke google api
$lang = 'en'; //jazyk ve kterem google api vrati data
$google = new GoogleGeoLocator($googleApiKey,$lang);
//hledani gps dle zadane adresy
$google->searchByAddress('Holečkova 32','Praha','Czech republic');
//hledani adresy dle zadane gps
$google->searchByLocation('50.073274','14.392619')
Pokud budete mít návrh na tuning nebo report chyb, budu velmi rád za zpětnou vazbu.
>> stáhnout knihovnu <<