2016-01-19 6 views
3

Я пытаюсь создать координаты на основе города с картами google, вот пример того, что у меня на данный момент, я всегда получаю ошибку?Получение координат по имени города google map

var address= 'Zurich, Ch'; 

    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 'address': address}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 

      var Lat = results[0].geometry.location.lat(); 
      var Lng = results[0].geometry.location.lng(); 


      } else { 
      alert("Something got wrong " + status); 
      } 
     }); 


    var myOptions = { 
     zoom: 11, 
     center: new google.maps.LatLng(Lat,Lng), 

    }; 
+0

Какую ошибку вы получаете? – geocodezip

+0

lat не определен –

ответ

7

Геокодер является асинхронным. Вы должны использовать возвращенные данные в функции обратного вызова, когда/где это доступно.

связанный с этим вопрос: Using Address Instead Of Longitude And Latitude With Google Maps API

proof of concept fiddle

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

function initialize() { 
 
    var address = 'Zurich, Ch'; 
 

 
    var geocoder = new google.maps.Geocoder(); 
 
    geocoder.geocode({ 
 
    'address': address 
 
    }, function(results, status) { 
 
    if (status == google.maps.GeocoderStatus.OK) { 
 
     var Lat = results[0].geometry.location.lat(); 
 
     var Lng = results[0].geometry.location.lng(); 
 
     var myOptions = { 
 
     zoom: 11, 
 
     center: new google.maps.LatLng(Lat, Lng) 
 
     }; 
 
     var map = new google.maps.Map(
 
     document.getElementById("map_canvas"), myOptions); 
 
    } else { 
 
     alert("Something got wrong " + status); 
 
    } 
 
    }); 
 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

0

Вы можете получить координаты с помощью функции GetPosition() ..

document.getElementById('lat').value=marker.getPosition().lat(); 
     document.getElementById('lng').value=marker.getPosition().lng(); 

get the full code.

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