2013-03-13 6 views
5

मैंने DirectionsRenderer का उपयोग करके मार्गों के साथ एक नक्शा विकसित किया है ... यदि गंतव्य और गंतव्य एक ही स्थान पर हैं तो मुझे गंतव्य मार्कर की आवश्यकता है ... लेकिन जब मैं जांचता हूं कि दो LatLng मान IF का उपयोग कर समान हैं, तो प्रोग्राम करता है यदि बयान निष्पादित नहीं ... गंतव्य मार्कर बाउंस नहीं हो रही है .. मेरी कोडिंगGoogle मानचित्र api v3 में स्थिति का उपयोग करते हुए दो LatLng मानों को कैसे जांचें?

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

उत्तर

20
+0

शामिल करने के लिए लेकिन, देखते हैं कि आप स्थान के आधार पर पास जांच करने के लिए आप @ geocodezip के समाधान – Kris

+0

फिर यकीन है कि दोस्त का उपयोग कर सकते चाहते हैं, तो सुनिश्चित करें ... स्पष्ट रूप से एक अच्छा ट्यून समाधान है ... भविष्य में बहुत ही मिनट के नक्शे api के लिए geocodezip के कोड का उपयोग करेगा ... आपके दोनों suppo के लिए धन्यवाद आरटी – Ree

6

करने के लिए परिवर्तन if(latlng1==latlng2) है अगर 2 google.maps.LatLng वस्तुओं निर्धारित करने के लिए एक ही स्थान हैं, पीआई सीके एक दूरी (0.1 मीटर की तरह), उनके बीच की दूरी की गणना करें, यदि यह थ्रेसहोल्ड से कम है, तो मान लें कि वे एक ही स्थान हैं। वस्तुओं की तुलना करना केवल तभी सही होगा जब वे समान समान वस्तु हों। 2 फ़्लोटिंग पॉइंट नंबरों की तुलना करना समस्याग्रस्त है, और फ्लोटिंग पॉइंट ऑब्जेक्ट्स के दो जोड़े की तुलना करना और भी बहुत कुछ है।

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

geometry library

+0

urs भी सर काम कर रहा है ... लेकिन क्रिस्ल कोड एक आसान है ... लेकिन आपके समर्थन के लिए धन्यवाद ... मेरे भविष्य के प्रश्नों के लिए भी इसकी उम्मीद है ... – Ree

+0

+1 @geocodezip बेहतर समाधान के लिए पास के स्थान की जांच करें। धन्यवाद – Kris

संबंधित मुद्दे