Google MapMaker

MapMaker este un produs Google ce permite utlizatorilor să adauge elemente pe hărțile Google Maps.
Google a deschis acest proiect pentru a-și îmbunătăți hărțile în anumite țari printre care – din August 2009 – figurează și România.

Câteva impresii – după ce am adaugat și eu cateva puncte de interes într-o zona pe care o cunosc foarte bine:

  • editorul este extrem de ușor de folosit;
  • imaginile aeriene fac posibilă trasarea cu ușurință a unor repere pe hartă.

Fenomenul asta a prins foarte bine în România, o țară ce a ajuns rapid in “top edits”(asa cum spunea @googlemaps).

În primele zile Constanța arăta cam așa:

însă acum situația se prezintă încurajator de bună, o mulțime de străzi și puncte de interes au fost localizate de catre comunitate.
Era normal ca în avalanșa de “edit”-uri, să se strecoare și inexactități, de exemplu, în Buzău o stradă (destul de importantă) era denumita “ARDAF”, iar un utilizator bine intenționat a marcat o uliță de interes local (circulată doar de caruțe) ca fiind o stradă unde te poți plimba pe malul râului Buzau în mașină cu cel puțin 50 la oră.

De ce nu îmi place Google MapMaker?

Chiar dacă mi-am pus “Școala Generală” pe harta, well …nu pot decât să mă uit la ea și să zic: “Ce bine stă!”, sau “Aha, deci aici e Școala Generală!”. Pe harta Google. Atăt. Adică, coordonatele școlii mele generale – așezate cei drept folosind imaginile aeriene Google – nu le pot exporta și folosi în alte aplicații. Eventual comerciale. Ca de exemplu ondi.ro.

Google apreciază mai nou “crowdsourcing”-ul și urmând modelul OpenStreetMap are toate șansele să completeze spațiile albe din Google Maps. E o chestie bună, însa reversul este că nimeni în afara de Google nu poate folosi munca depusă de comunitate. Poate și utilizatorii ocazionali ce vor admira pozitionarea “Școlii Generale”.

Dacă mă voi mai lăsa antrenat vreaodata în efectul ăsta de “crowdsourcing” atunci voi contribui pentru un proiect ce îmi va permite să downloadez, să stochez și să dau și la alții (pe dischete de 3.5), eventual în scop comercial informațiile adăugate.

“Google MapMaker=Free Beer, OSM=Freedom”

suna cam radical, însă cu MapMaker nici măcar felul de bere nu ți-l poti alege…

Puncte de interes

andrei, proaspat intors din Bucuresti, a adus cu el cateva puncte de interes (POI), si dupa o operatie destul de migaloasa de verificare suntem gata sa oferim aproape 140 de Restaurante (kind=2052), Cluburi/Baruri/Berari/Puburi (kind=2050) prin intermediul serviciului de Reverse Geocoding.

Operatiunea de import si de adaugare de noi puncte de interes va continua pana spre sfarsitul lunii cand speram sa integram si alte date utile, poate si pentru alte orase.

Va puteti incerca query-urile in API Console!

Romanian Geocoder: un pic mai destept

Recent, /api/locate a început să rezolve nume și expresii un pic mai complicate.

Exemple, ce până mai ieri nu funcționau:

  • Iași, Recea, Jud. Brasov
  • Sat Iași, Brașov
  • Comuna Recea, Județul Brasov
  • Brasov, Brașov
  • Drumul Taberei, București

În general, “gramatica” este definită cam asa:

<keyword> Nume,[ <keyword> Nume, [<keyword> Nume] ]

Cuvantul cheie nu este obligatoriu, existând totuși câteva reguli:

  • virgula (,) se folosește pe post de separator al segmenților introduși;
  • rangul locației curente (kind) trebuie sa fie mai mic decat rangul anterior, și
  • se pot folosi maxim 3 segmenți (pseudo-code: incoming_name.split(",").size < 4)

Exemple ce nu vor întoarce niciun rezultat:

  • Brasov; Brașov
  • Judetul Brașov, Brasov
  • Recea, Sat Iași
  • Sectorul 6, Drumul Taberei
  • Militari, Sectorul 6, București, București

Detalii despre cuvintele cheie (<keyword>s) sunt pe wiki.

Să aveți spor!

Demo Geolocation API nativ

Consola pentru incercarea serviciului web /api/reverse demonstreaza suportul nativ (implementat in browser) pentru Geolocation API.

Nimic extraordinar: daca ai un browser ce implementeaza aceasta facilitate (astazi: Opera, Firefox 3.5, iPhone Safari), valorile implicite pentru latitudine si longitudine sunt completate cu pozitia ta actuala.

Ce nu mi-a placut: implementarea nativa a API-ul – destul de simplu si foarte usor de indrodus in aplicatiile existente – nu ofera posibilitatea de a oferi un feedback utilizatorului in intervalul in care in background browserul incearca sa determine locatia. Atunci cand iti dai acordul pentru a accesa aceasta informatie, as fi vrut sa pot afisa un spinner ceva, pentru ca exista un interval de cateva secunde in care nimeni nu stie ce se intampla. Sau, aceasta facilitate sa fie implementata direct in browser (cel putin in Firefox nu e).

navigator.geolocation.getCurrentPosition(function(position) { /* apelata cand avem un rezultat */ }, function(error) { /* apelata cand apare o eroare */ });

In fine, partea (super) pozitiva: applicatiile location aware au devenit mult mai usor de dezvoltat.

Give it a try!

Nota: pozitionarea ta nu este stocata pe serverele ondi.ro. Este un demo.

Versiunea 0.5

Versiunea 0.5 a intrat in productie iar pentru ondi.ro acest lucru inseamna atingerea unui milestone foarte important.

Modificari:

Pagination

  • In sectiunea header din raspuns am adaugat tagurile: page → pagina curenta, pages → nr. total de pagini si per_page → rezultate / pagina.
  • page se poate trimite ca parametrul in request

Restrictii

  • Un utilizator are voie la 1 ApiKey (adica un site)
  • Un ApiKey, poate face 250 de requesturi / zi catre serviciile ondi.ro

Termenii si Conditiile vor fi corectate in curand pentru a reflecta aceasta actualizare.

Coduri noi de eroare

  • 37 – limita de cereri / zi a fost atinsa. Contactati-ne daca dati peste aceasta eroare si vom incerca sa o rezolvam.
  • 38 – contul de utilizator trebuie revalidat. Sectiunea my account va contine detaliile legate de aceasta problema.

Upgrade

Aplicatiile existente vor continua sa functioneze fara erori fatale cu aceasta versiune. Insa pentru a primi toate rezultatele este necesar sa folositi paginarea.

Clientul PHP a fost actualizat si el, la fel si documentatia.

Ce urmeaza?

  • Termen mediu: incercam sa oferim o versiune PRO: cu alte limitari si cu ceva facilitati in plus.

Happy coding!