2013-03-13 13 views
5

Ben rotalar DirectionsRenderer kullanarak bir harita geliştirdik ... i kökeni ve hedef aynı yerde ise aynen Hedef işaretçisini gerek ... ama iki EnlBoy değerlerinin aynı kullanarak IF olup olmadığını kontrol ederken, programda ki eĞER ifadesi çalıştıramazsınız ... hedef işaretleyici geri döndüğüne ilişkin değildir .. benim kodlama eğer 2 google.maps.LatLng nesneleri belirlemek içinGoogle Map api v3'te koşul varsa iki LatLng değeri nasıl kontrol edilir?

 var myOptions = 
    { 
     center: new google.maps.LatLng(default_latitude,default_longitude), 
     zoom: 4, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    var map = new google.maps.Map(document.getElementById("map"),myOptions); 
    var latlng1=new google.maps.LatLng(glat,glon); 
    var latlng2=new google.maps.LatLng(hlat,hlon); 

    var marker = new google.maps.Marker({ 
      icon: "http://www.googlemapsmarkers.com/v1/B/67BF4B/000000/00902C/", 
      position: new google.maps.LatLng(glat,glon), 
      map: map 
     }); 


    var marker1 = new google.maps.Marker({ 
       icon: " http://www.googlemapsmarkers.com/v1/A/67BF4B/000000/00902C/", 
       position: new google.maps.LatLng(hlat,hlon), 
       map: map 

      }); 

    //THIS IF STATEMENT IS NOT WORKING ... WHAT CAN I USE INSTEAD OF THIS 
     if(latlng1==latlng2) 
      marker1.setAnimation(google.maps.Animation.BOUNCE); 



    directionsDisplay.setMap(map); 
    directionsDisplay.setPanel(document.getElementById("panel")); 
    var request = { 
     origin: latlng1, 
     destination:latlng2, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 

    directionsService.route(request, function(response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(response); 
     } 
    }); 

cevap

20
+0

dahil Ama geocodezip çözümüyle – Kris

+0

ya emin arkadaşı @ kullanabilirsiniz konuma göre yakın kontrol etmek istiyorsanız, bakın emin olun ... tatsız bir şekilde ince ayarlı bir çözüm var ... geocodezip'in kodunu çok yakında harita api'leri için kullanacak ... hem de her iki destek için teşekkürler davasındaki iyi çözüm için ... benim de gelecekteki sorular için – Ree

6

değişiklik if(latlng1==latlng2) olduğunu aynı yer, pi ck bir mesafe (0.1 metre gibi), aradaki mesafeyi hesaplayın, eşikten azsa, aynı yerde olduklarını varsayın. Karşılaştırma nesneler, aynı özdeş nesneler olduklarında yalnızca doğru döner. 2 kayan nokta sayısının karşılaştırılması sorunludur ve iki çift kayan nokta nesnesini karşılaştırmak daha da fazladır.

var SameThreshold = 0.1; 
if (google.maps.geometry.spherical.computeDistanceBetween(latlng1,latlng2) < SameThreshold) 
    marker1.setAnimation(google.maps.Animation.BOUNCE); 

geometry library

+0

urs de efendim çalışıyor ... ama KrisL kodu daha basit bir tanesidir ... ama teşekkürler ur destek için ... beklemek Yakındaki yeri kontrol et. teşekkür ederim – Ree

+0

1 @geocodezip aynı rt – Kris

İlgili konular