Disambiguare casi di omonimia nei nomi di città col geocode di Google Maps

Giorgio Borelli

Un potenziale problema che si presenta quando facciamo uso del Geocoding con Google Maps è quello dei casi di omonimia nei nomi delle città ritornate. Se provassimo a cercare in Google Maps la città di Siracusa, ci verrebbe ritornata la città di Syracuse dello stato di New York (NY). Questo problema di città con lo stesso nome si verifica più spesso di quanto si possa pensare, ed in ogni caso è necessario fare in modo che Google Maps ci ritorni la città che noi effettivamente desideriamo cercare.

Il problema è banalmente risolvibile, ed è legato sostanzialmente al cambio del paese di base al quale il geocoder delle mappe effettua la richiesta, andiamo a vedere come fare.

L'ambiguità dei risultati tornati in Google Maps nel caso di città omonime (con lo stesso nome) è legato al funzionamento del geocoder Maps, questa classe in caso di ambiguità dei nomi città, forza i risultati in base al paese dal quale è stata fatta la richiesta. Ritornando all'esempio dell'introduzione, inserendo "Siracusa" nella casella di ricerca, se siamo su maps.google.com il geocode restiruirà la città di "Syracuse, NY", se invece la stessa richiesta viene fatta su maps.google.it viene restituita la città di "Siracusa" in Sicilia.

Questo problema si verifica anche quando facciamo uso delle API di Google Maps per integrare le mappe all'interno del nostro sito, le API vengono referenziate inserendo un riferimento al file Javascript di Google Maps, in questo modo:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script">

Con questo script effettueremo la richiesta al geocode facendo riferimento alle google.maps.com, per referenziare il geocode del dominio italiano, quindi google.maps.it, e far ritornare Siracusa in Sicilia (dell'esempio), il modo più corretto per farlo è definire la costante MAPS_HOST assegnandogli il nome del dominio delle mappe di riferimento, in PHP scriveremo in questo modo:

define("MAPS_HOST", "maps.google.it");

è pertanto lo script Javascript per riferirsi alle API di Google Maps diventa:

<script type="text/javascript" src="http://'.MAPS_HOST.'/maps/api/js?sensor=true"></script">

Basterà allora assegnare alla costante MAPS_HOST il valore del dominio delle mappe adeguato alle nostre ricerche per vedersi ritornare dal geocode di Google Maps la città disambiguata e col nome corretto.

Per chi volesse approfondire gli argomenti su Google Maps, può leggere i precedenti articoli:

Per chi invece volesse partire o avere tutti i riferimenti inerenti le API di Google Maps, questo è il link ufficiale della documentazione:

Google Maps Javascript API V3 Reference

Chiunque voglia aggiungere qualcosa, chiedere chiarimenti, su "Come cambiare il dominio (country) di base per l'interrogazione del geocode di Google Maps" può farlo tramite i commenti.

Categorie: Google

Tags: ,

Pingbacks and trackbacks (1)+

Aggiungi Commento

biuquote
Loading