2011-07-25 25 views
7

google harita geometri kütüphanesinde computeDistanceBetween() fonksiyon benim için bir değer döndürmez dönmek için google haritalar computeDistanceBetween() alınamıyor. alert işlevini kullandığınızda mesafe "[nesne, nesne]" olduğunu söyledi. Nerede yanlış gittiğimi gören var mı? Burada söz konusu olan kodun önemli parçaları şunlardır: Eğer yeni bir nesne oluşturmak için sözdizimi kullandım Nedensebir değerini

<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> 

cevap

11

computeDistanceBetween statik bir yöntemdir. Yani bu satırı:

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

yerine bu olmalıdır: Bu arada

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

, alert() şey bir nesnedir söylerse, sizi console.dir() geçmek yerine öylesine alert() için iyi bir zaman var (en azından bazı tarayıcılarda) konsol/dev araçları nesnenin içeriğine bakabilirsiniz. Eğer JavaScript konsolunda hakkında çok bilmiyorsanız, bunu kontrol. Bu size zaman kazandıracak.

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

. Eğer alert(distance), sen distance bir nesne olduğunu görüyoruz zaman neden budur.

computeDistanceBetween is just a function

:

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