2015-10-07 4 views
0

Я использовал этот код для получения широты и долготы. Я хочу развернуть несколько географических кодов для нескольких местоположений.Геокодирование с использованием API Google

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

var geocoder = new google.maps.Geocoder(); var address = "new york"; 

geocoder.geocode({ 'address': address}, function(results, status) { 

if (status == google.maps.GeocoderStatus.OK) { 
var latitude = results[0].geometry.location.lat(); 
var longitude = results[0].geometry.location.lng(); 
alert(latitude); } }); </script> 

Если я изменю, включите два местоположения. Любые идеи, почему это не пишет на веб-страницу, любая идея о том, как хранить широту и долготу нескольких местоположений в массиве.

<!DOCTYPE html> 
<html> 
<body> 
<h1>My First Web Page</h1> 
<p>My first paragraph.</p> 


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

var geocoder = new google.maps.Geocoder(); 
var address = [['New York City'],['Chicago, IL']]; 

geocoder.geocode({ 'address': address}, function(results, status) { 

if (status == google.maps.GeocoderStatus.OK) { 
var latitude = results[0].geometry.location.lat(); 
var longitude = results[0].geometry.location.lng(); 
document.write(latitude); 
document.write(longitude); 
} 
}); 
</script> 

</body> 
</html> 

ответ

1

См the documentation, адрес является строкой, а не массив массивов строк.

Обратите внимание, что геокодер зависит от квоты и ограничения скорости, поэтому приведенный ниже код будет работать только для примерно 10 результатов без адресации = OVER_QUERY_LIMIT.

var geocoder = new google.maps.Geocoder(); 
var address = [ 
    ['New York City'], 
    ['Chicago, IL'] 
]; 
for (var i = 0; i < address.length; i++) { 
    geocoder.geocode({ 
     'address': address[i][0] 
    }, function (results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      var latitude = results[0].geometry.location.lat(); 
      var longitude = results[0].geometry.location.lng(); 
      document.getElementById('info').innerHTML += latitude + "<br>"; 
      document.getElementById('info').innerHTML += longitude + "<br>"; 
     } else { 
      alert("geocode failed:"+status); 
     } 
    }); 
} 

фрагмент кода:

var geocoder = new google.maps.Geocoder(); 
 
var address = [ 
 
    ['New York City'], 
 
    ['Chicago, IL'] 
 
]; 
 
for (var i = 0; i < address.length; i++) { 
 
    geocoder.geocode({ 
 
    'address': address[i][0] 
 
    }, function(results, status) { 
 
    if (status == google.maps.GeocoderStatus.OK) { 
 
     var latitude = results[0].geometry.location.lat(); 
 
     var longitude = results[0].geometry.location.lng(); 
 
     document.getElementById('info').innerHTML += latitude + "<br>"; 
 
     document.getElementById('info').innerHTML += longitude + "<br>"; 
 
    } else { 
 
     alert("geocode failed:" + status); 
 
    } 
 
    }); 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="info"></div>

Смежные вопросы