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!

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!

București == Bucuresti

Serviciul /api/where a fost îmbunătățit iar acum este capabil să recunoscă și localități fără diacritice.

Problema era ascunsă în MySQL, unde câmpul ce ținea numele localității era definit cu COLLATE= utf8_unicode_ci1. Acesta a fost modificat la utf8_bin și acum totul funcționează așa cum era prevăzut.

Have fun!

1 COLLATE înseamnă un set de reguli ce se aplică pentru compararea caracterelor într-un set de caractere.

Client PHP

Dupa o sedinta scurta de `hacking’ am pus pe picioare un client simplu pentru accesarea serviciilor web ondi.ro din PHP.

Download prima versiune [ tar.gz ~ 2KB ].

Pentru a-l folosi aveti nevoie de extensia php-curl si de un api-key valid. Fisierul ondi.ro.php nu are alte dependinte si poate fi inclus cu usurinta in proiectele voastre.

require ‘ondi.ro.php’;

$request= new OndiRequest(API_KEY);

$locate= $request→locate(‘Breaza’); // $locate este acum un string XML

$reverse= $request→reverse($lat, $long, 3, ‘json’); // $reverse este un string JSON

$where= $request→where(‘…..’, ‘georss’); // $where este un string XML continand raspunsul in format GeoRSS

Cu aceasta ocazie, am deschis si un `repository’ pe github unde vom publica si alti clienti suportati in mod oficial sub licenta MIT. Acest `repository’ poate fi `clonat’ cu comanda:

git clone git://github.com/aurelian/ondi.ro.git

Spor la treaba!