阻止循环内部地理编码器Google Maps API

时间:2013-11-13 09:53:08

标签: javascript loops google-maps-api-3 google-geocoder

我正在使用Google Map API。我希望得到一个给定地址的lat和long。我这样做了

var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': 'Stockholm' }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var latitude = results[0].geometry.location.nb;
            var longitude = results[0].geometry.location.ob;
            console.log(latitude);
        }
});

但是我反复运行控制台日志。我只想让它运行一次,但我没有找到任何想法。

1 个答案:

答案 0 :(得分:0)

声明一个新变量,显示是否已调用地理编码,并在第一次发生时将其更改为true。

var geoCalled = false;

var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': 'Stockholm' }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    var latitude = results[0].geometry.location.nb;
    var longitude = results[0].geometry.location.ob;
    if (!geoCalled) {
      console.log(latitude);
      geoCalled = true;
    }
  }
});