繁体   English   中英

无法获取谷歌地图computeDistanceBetween()以返回值

[英]Can't get google maps computeDistanceBetween() to return a value

google maps几何库中的computeDistanceBetween()函数不会为我返回值。 使用alert功能,它表示距离为“[object,Object]”。 谁能看到我哪里出错了? 以下是相关代码的重要部分:

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

    var myArray1= [['location1', lat1, lng1], ['location2', lat2, lng2], ...];
    var myArray2= [['locationA', latA, lngA], ['locationB', latB, lngB], ...];
    var arrays = [myArray1, myArray2];

    function codeStart() {
      var orig;
      var startAddress = document.getElementById("start").value;
      geocoder.geocode( { 'address': startAddress}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var i = 0;
                var input = results[0].geometry.location;
                while (i < arrays.length) {             
                    orig = closest(input, arrays[i]);
                }
            }
      });
    }

    function closest(latlng, array){
      var distance;
      var c = 0;
      while (c < array.length){
          var location = array[c];
          var locationlatlng = new google.maps.LatLng(location[1],location[2]);
          distance = new google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);
          alert(distance);  // popup box says "[object, Object]"
          c++;
      }
    }

</script>

computeDistanceBetween是一个静态方法。 所以这一行:

distance = new google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);

应该是这样:

distance = google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng)

顺便说一下,当alert()告诉你某个东西是一个对象时,现在是切换到console.dir()而不是alert()的好时机,这样你就可以(至少在某些浏览器中)查看对象的内容在console / dev工具中。 如果您对JavaScript控制台了解不多,请查看它。 它将为您节省大量时间。

distance = new google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);

出于某种原因,您已使用语法创建新对象。 这就是为什么当你发出alert(distance) ,你会看到distance是一个物体。

computeDistanceBetween只是一个函数

distance = google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM