2011-10-05 4 views
0

Mon application est un programme php, et j'ai seulement le nom de l'adresse, au lieu de la coordination sur la carte. Mais je trouve que l'API google map nécessite la coordination pour épingler l'adresse. Comment puis-je le faire? Je vous remercie. J'ai l'adresse: '觀塘% 20 牛頭% 20% 202% 20% 202%% 202A% 20202%'. Il peut être la recherche, et la broche sur l'application google map, mais quand je l'aide de l'api Google pour faire géocodage, il me montre ZERO_RESULT:Comment dois-je intégrer la carte Google dans mon application?

http://maps.googleapis.com/maps/api/geocode/json?address=%E8%A7%80%E5%A1%98%20%E7%89%9B%E9%A0%AD%E8%A7%92%20%E5%89%B5%E6%A5%AD%E8%A1%97%202%E8%99%9F%20%E7%BE%8E%E4%BA%9E%E5%B7%A5%E6%A5%AD%E5%A4%A7%E5%BB%88&sensor=false

+1

Le processus que vous recherchez s'appelle Géocodage: http://code.google.com/apis/maps/documentation/geocoding/ –

+0

met à jour la question avec certains problèmes de géocodage. – DNB5brims

+0

Fixé avec les paramètres, région: Hong Kong. – DNB5brims

Répondre

1

Il suffit de convertir l'adresse en latitude/longitude premier. Vous pouvez soit le faire en utilisant javascript ou vous pouvez utiliser PHP (et le mettre en cache pour plus tard). Voici une fonction simplifiée pour faire cela pour vous

function postcode_to_latlon($postcode){ 

    $xml = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address='.$postcode); 

    $lat = $xml->result->geometry->location->lat; 
    $lon = $xml->result->geometry->location->lng; 

    return array($lat, $lon); 

} 

Ce processus est appelé géocodage.

+0

Mais j'ai un problème, par exemple, j'essaie de convertir cette adresse à la coordination comme ceci: http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=%E8%A7%80 % E5% A1% 98% 20% E7% 89% 9B% E9% A0% AD% E8% A7% 92% 20% E5% 89% B5% E6% A5% AD% E8% A1% 97% 202% E8 % 99% 9F% 20% E7% BE% 8E% E4% BA% 9E% E5% B7% A5% E6% A5% AD% E5% A4% A7% E5% BB% 88% 202% E6% A8% 93 % 202A% 20202% E5% AE% A4 – DNB5brims

+0

Il n'a rien trouvé, mais si je colle la recherche d'adresse depuis la carte Google, il peut épingler l'adresse, comme ceci: http://maps.google.com/maps?q= % E8% A7% 80% E5% A1% 98% 2520% E7% 89% 9B% E9% A0% AD% E8% A7% 92% 2520% E5% 89% B5% E6% A5% AD% E8% A1 % 97% 25202% E8% 99% 9F% 2520% E7% BE% 8E% E4% BA% 9E% E5% B7% A5% E6% A5% AD% E5% A4% A7% E5% BB% 88% 25202 % E6% A8% 93% 25202A% 2520202% E5% AE% A4 & hl = fr & ie = UTF8 & sll = 0,0 & sspn = 141.573652,316,054688 & vpsrc = 6 & hnear = Meyer + Industriel + Bldg, + 2 + Chong + Yip + St, + Hong + Kong & t = m & z = 16 – DNB5brims

+0

Essayez avec http://where.yahooapis.com/geocode?q=your_addr&flags=J&gflags=R&appid=your_app_key. il retourne lat: 22.319700, lon: 114.223427. Mais vous devez d'abord créer une clé d'application. –

0

L'adresse ne peut pas être trouvée alors. Essayez de simplifier l'adresse ou de changer les choses afin que Google comprenne mieux. Vérifiez également les erreurs dans votre chaîne d'adresse.

+0

Fixé avec les paramètres, région: HK. Je pense que google map web est supposé que mon application est utilisée dans la région cachée HK. après avoir ajouté le & région = HK tout fonctionne comme par magie. – DNB5brims

Questions connexes