2013-03-13 4 views
5

Ich habe eine Karte mit Routen mit DirectionsRenderer entwickelt ... ich brauche den Zielmarker, um zu bouncen, wenn Ursprung und Ziel an der gleichen Stelle sind ... aber wenn ich überprüfe, ob die beiden LatLng-Werte mit IF identisch sind, tut das Programm nicht die IF-Anweisung ausführen ... wird die Zielmarkierung nicht prallte bekommen .. meine Codierung istWie überprüft man zwei LatLng-Werte mit if-Bedingung in Google Map API v3?

 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); 
     } 
    }); 

Antwort

20

Try equals method in LatLng to compare 2 location

Änderung if(latlng1==latlng2)-if(latlng1.equals(latlng2))

+0

Aber sehen aufzunehmen, wenn Sie in der Nähe Lage überprüfen möchten Sie @ geocodezip Lösung – Kris

+0

ya sicher Freund verwenden können ... tats offensichtlich eine fein abgestimmte Lösung ... wird den Code von geocodezip für sehr kleine Karten-APIs in Zukunft verwenden ... Danke für Ihre Unterstützung rt – Ree

6

wenn 2 google.maps.LatLng Objekte zu bestimmen sind der gleiche Ort, pi ck eine Entfernung (wie 0,1 Meter), berechnen Sie den Abstand zwischen ihnen, wenn es kleiner als der Schwellenwert ist, nehmen Sie an, sie sind der gleiche Ort. Das Vergleichen von Objekten gibt nur wahr zurück, wenn sie das gleiche identische Objekt sind. Der Vergleich von 2 Gleitkommazahlen ist problematisch, und der Vergleich von zwei Gleitkomma-Objektpaaren ist sogar noch schwieriger.

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

Seien Sie sicher, dass die geometry library

+0

urs arbeitet auch sir ... aber Krisl Code ist ein einfacheres ... aber danke für deine Unterstützung ... erwarte dasselbe für meine zukünftigen Fragen auch ... – Ree

+0

+1 @geocodezip für bessere Lösung im Fall zu Überprüfen Sie den Standort in der Nähe. Vielen Dank – Kris