2011-08-16 2 views
0

Je suis tout à fait nouveau à JavaScript et je cherche une API ou une fonction de base que je peux alimenter une adresse comme une valeur de chaîne et me renvoie la longitude et latitude de cette adresse. J'ai une série d'adresses dans un DB et je veux ajouter les valeurs de longitude et de latitude pour chacun d'eux.Basic API qui renvoie la longitude et la latitude d'une adresse en utilisant JavaScript ou PHP

Merci

+0

Je suppose que vous voulez dire une adresse postale, pas une adresse IP ou quelque chose du genre, n'est-ce pas? – Bojangles

+0

duplicata possible de [Comment obtenir la longitude et la latitude pour une adresse de rue par programmation (et légalement)] (http://stackoverflow.com/questions/158474/how-to-obtain-longitude-and-latitude-for-a- street-address-programatically-and-l) – Gordon

Répondre

1

Découvrez ci-dessous par exemple en utilisant php

<?php 
$address ="1600+Amphitheatre+Parkway,+Mountain+View,+CA"; 
$url ="http://maps.googleapis.com/maps/api/geocode/xml?address=".$address."&sensor=false"; 
$getAddress = simplexml_load_file($url); 
print"<pre>"; 
print_r($getAddress); 
?> 

Il retourne tous les détails vous devez obtenir la latitude/longitude comme ci-dessous.

<?php 
print"<pre>"; 
print_r((string)$getAddress->result->geometry->location->lat); echo "<br />"; 
print_r((string)$getAddress->result->geometry->location->lng); 
?> 

Pour plus de détails s'il vous plaît cliquer sur lien ci-dessous:

http://code.google.com/apis/maps/documentation/geocoding/

+0

Merci fonctionne parfaitement. – aHunter

0
function GetLatLong($address){ 
    $myKey = 'Get key from google api v2 '; 
     $URL = "http://maps.google.co.uk/maps/geo?q=" . urlencode($address) . "&output=xml&key=".$myKey; 
     $xml = simplexml_load_file($URL); 
     $status = $xml->Response->Status->code; 
     if ($status=='200') 
     { //address geocoded correct, show results 
      foreach ($xml->Response->Placemark as $node) 
      { // loop through the responses 
       $address = $node->address; 
       if(strpos($address,'USA') || strpos($address,'usa')) 
       { 
        $quality = $node->AddressDetails['Accuracy']; 
        $coordinates = $node->Point->coordinates; 
        return (explode(',',$coordinates)); 
       } 
      } 
     } 
    } 

Cette api ne fonctionne que pour les adresses et les etats unis Royaume-Uni. L'adresse doit être séparée par '+' et ne doit contenir aucun espace. Ce code est seulement des coordonnées d'analyse pour les Etats-Unis. Veuillez modifier le code en fonction de vos besoins

Questions connexes