sla*_*pee 7 javascript google-maps-api-3
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>
Run Code Online (Sandbox Code Playgroud)
Tro*_*ott 12
computeDistanceBetween是一种静态方法.所以这一行:
distance = new google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);
Run Code Online (Sandbox Code Playgroud)
应该是这样:
distance = google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng)
Run Code Online (Sandbox Code Playgroud)
顺便alert()说一下,当告诉你某个东西是一个对象时,现在是切换到的好时机,console.dir()而不是alert()这样你可以(至少在某些浏览器中)查看console/dev工具中对象的内容.如果您对JavaScript控制台了解不多,请查看它.它将为您节省大量时间.
| 归档时间: |
|
| 查看次数: |
11619 次 |
| 最近记录: |