Co říkáte na Geo Services - PHP knihovna pro Google Direction API rubrika: Programování: PHP

3 matous.nemec
položil/-a 3.3.2015

Dnes jsem vydal první experimentální verzi Geo Services. Je to vlastně zaobalení Googlího directions API a chystám se zapracovat i Geocoding, Distance Matrix a možná i TimeZone a Elevation API.

Composer install:
"mesour/geo-services": "~0.1.0"

Zatím k tomu není dokumentace, ale zde je ukázka použití:

use \Mesour\GeoServices\Http\Authenticator,
    \Mesour\GeoServices\Direction,
    \Mesour\GeoServices\Direction\TravelMode,
    \Mesour\GeoServices\Direction\Transit;
 
$authentikator = new Authenticator('API_KEY');
$direction = new Direction($authentikator);
 
$direction->setOrigin('Praha,Česká republika')
    ->setDestination('Mariánské Lázně,Karlovarský kraj,Česká republika');
 
$direction->addWayPoint('Plzeň,Česká republika'); // nastavím, že chci jet přes Plzeň a ne přes K. Vary
 
$direction->setAlternatives(); // nastavím alternativy na true, pokud chci vrátit všechny dostupné cesty do cíle
 
//Práce s veřejnou dopravou
$direction->setTravelMode(TravelMode::TRANSIT) // nastavím travel mode na veřejnou dopravu (default TravelMode::DRIVING)
    ->addTransitMode(Transit\Mode::RAIL); // přidám typ dopravy vlakem
 
//Omezení na určitý stát (státy), ccTLD kódem
$direction->setRegion('.cz'); // pouze v ČR
$direction->setRetion('.cz.de'); // v ČR a Německu
 
$result = $direction->lookup();
 
if($result->isOk()) {
        foreach($result->getRoutes() as $route) {
             print_r($route->getPolyLine()->toArray()); // tady IDE našeptá metody, jsou tam classy implementující \Iterator
        }
} else {
    switch($result->getStatus()) {
        case $result::NOT_FOUND :
            //do something
        break;
        case $result::REQUEST_DENIED :
            //do something
        break;
 
        // ...
 
    }
}

Odkazy:
GitHub: https://github.com/mesour/Geo-services
API: http://apis.mesour.com/api/GeoServices0.1/
Packagist: https://packagist.org/packages/mesour/geo-services

Takže můj dotaz je: Co si o tom myslíte? Použijete/Nepoužijete a proč? Prostě mi jde o nějaké názory na tuhle knihovnu ;-) Jestli to bude mít do budoucna vůbec smysl dál vyvíjet.

EDIT: To demo nebude o moc větší než tahle ukázka inicializace. Je to vlastně Directions API, jehož výsledek je zabalený do objectů. A abych udělal DEMO, které obsáhne všechno, tak do toho se asi ani pouštět nebudu. Umí to prostě všechno, co je zde: https://developers.google.com/maps/documentation/directions/... Myslím, že se to dá nejlépe prohlédnout a zhodnotit podle API zde http://apis.mesour.com/api/GeoServices0.1/, tam se to dá krásně proklikat a kouknout co co vrací :-)

odkaz
2 honzamac
odpověděl/-a 27.2.2015

Mi to prijde jako zbytečná obálka nad něčím, co už má api.
Pokud by to mělo více geoapi a navzájem se doplnovaly, tak by to asi mělo přidanou hodnotu.

Komentáře

  • matous.nemec : JoJo, to máte pravdu. Sice API mají, ale neexistuje k tomu žádná PHP knihovna. Takže byste musel ručně volat jejich URL a vždy podle dokumentace zjišťovat, jaké lze nastavit parametry a jaké jsou klíče ve výsledném poli. Tahle knihovna vás od tohoto odstíní a navíc v kódu nebudete mít nějaké $result['routes'][0]['legs']. Jednoduše zavoláte $result->getRoutes(0)->getLegs()a hlavně není potřeba k tomu koukat na dokumentaci, jestli je tam klíč routes nebo ways. IDE vám krásně našeptá metody ;-) 28.2.2015
  • matous.nemec : Více GeoApi chystám zapracovat, jak jsem psal a nějaká integrace mezi jednotlivými API také není vyloučena, to je dobrý nápad :-) S tím by se pak dalo něco zajímavého vymyslet. 28.2.2015

Pro zobrazení všech 9 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.