Home > Open Source > Geocoder: una libreria PHP per realizzare applicazioni con funzionalità di geocoding

Geocoder: una libreria PHP per realizzare applicazioni con funzionalità di geocoding


Geocoder è una libreria PHP per realizzare applicazioni con funzionalità di geocoding.

La libreria è divisa in due parti:

  • HttpAdapters: componente responsabile di ottenere i dati da API remote
  • Providers: contiene la logica per estrarre le informazioni utili da una serie di fonti dati tra cui, Google, Bing, OpenStreetMap, CloudMade, MapQuest, TomTom, ArcGIS OnLine, ecc …

La logica di utilizzo è piuttosto semplice (forse troppo rozza ma il prodotto è open source e quindi migliorabile …):  Geocoder prende una lista di providers e itera sino a quando non ottiene un risultato.

$geocoder = new \Geocoder\Geocoder();
$adapter = new \Geocoder\HttpAdapter\CurlHttpAdapter();
$chain = new \Geocoder\Provider\ChainProvider(array(
new \Geocoder\Provider\FreeGeoIpProvider($adapter),
new \Geocoder\Provider\HostIpProvider($adapter),
new \Geocoder\Provider\GoogleMapsProvider($adapter, 'fr_FR', 'France', true),
new \Geocoder\Provider\BingMapsProvider($adapter, '<API_KEY>'),
// ...
));
$geocoder->registerProvider($chain);


try {
$geocode = $geocoder->geocode('10 rue Gambetta, Paris, France');
var_export($geocode);
} catch (Exception $e) {
echo $e->getMessage();
}

Il risultato viene restituito in un oggetto Geocoded che a sua volta permette di estrarre i seguenti dettagli:

  • getCoordinates() will return an array with latitude and longitude values;
  • getLatitude() will return the latitude value;
  • getLongitude() will return the longitude value;
  • getBounds() will return an array with south, west, north and east values;
  • getStreetNumber() will return the street number/house number value;
  • getStreetName() will return the street name value;
  • getCity() will return the city;
  • getZipcode() will return the zipcode;
  • getCityDistrict() will return the city district, or sublocality;
  • getCounty() will return the county;
  • getCountyCode() will return the county code (county short name);
  • getRegion() will return the region;
  • getRegionCode() will return the region code (region short name);
  • getCountry() will return the country;
  • getCountryCode() will return the ISO country code;
  • getTimezone() will return the timezone

 

Il prodotto è rilasciato con licenza MIT.

Categorie:Open Source Tag:
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: