15

छोटी पृष्ठभूमि को हटा दें। जब आप किसी निश्चित नेविगेशन आइटम पर क्लिक करते हैं, तो मेरे पास नेविगेशन सेटअप होता है, यह मानचित्र पर markers बनाता है। यदि आप एक अलग नेविगेशन आइटम पर क्लिक करते हैं, तो यह पिछले markers को हटा देता है और नए सेट अप करता है।Google मानचित्र API v3 सभी polylines

ठीक है अब मैं polylines के साथ काम कर रहा हूं और polylines के साथ एक ही अवधारणा बनाने की कोशिश कर रहा हूं, हालांकि मुझे एक कठिन समय है। यहां मेरे पास है:

// Global variable for array of lines 
    var points= []; 

मेरे अंक सेट अप करें।

line1 = new google.maps.LatLng(line1Start, line1Finish); 
    line2 = new google.maps.LatLng(line2Start, line2Finish); 
    line3 = new google.maps.LatLng(line3Start,line3Finish); 

    points.push(line1, line2, line3); 

मेरी पॉलिलाइन सेट अप करें।

var polyline = new google.maps.Polyline({ 
     path:points, 
     strokeColor:"#FF0000", 
     strokeOpacity:1.0, 
     strokeWeight:2 
    }); 

मानचित्र के साथ मानचित्र आरंभ करें।

polyline.setMap(map); 

सभी अच्छी तरह से काम करता है। रेखाएं मेरे मार्करों के बीच बनाई गई हैं और दिखाई देती हैं। अब उन्हें हटाने (या नहीं ...)

function removeLines() { 
     if (points) { 
      points.length = 0; 
     } 
     points = []; 
    } 

removeLines की सुविधा देता है() उन्हें स्पष्ट करने के लिए समारोह की शुरुआत में कहा जाता है की जा रही है, तो नए लोगों को सेटअप कर रहे हैं। यह वास्तव में अंक बिंदु में मेरे अंक साफ़ करता है, हालांकि मानचित्र पर ही polylines अभी भी दिखाई देता है और मेरे मार्करों की तरह गायब नहीं होता है।

क्या देता है ?!

उत्तर

30

आपको polyline.setMap(null) करना है, जो मानचित्र से लाइन को हटा देगा। Documentation

+2

वाह .. मैं इस से पहले कर रहा था, लेकिन मैं कर रहा था अंक सरणी पर एक पाश और अंक कर रहे हैं [i] .setMap (शून्य); जाहिर है, यह पॉलीलाइन पर होना चाहिए, न कि अंक सरणी ... डीयूएच। +1 मुझे यह समझने में मदद के लिए धन्यवाद :) :) – Romes

12

पॉलीलाइन लैट्लिंग ऑब्जेक्ट्स की एक सरणी है, व्यक्तिगत पॉलिलाइन नहीं। मुझे लगता है कि आपको शायद पॉलिलाइन के लिए एक अलग सरणी की आवश्यकता है, जिसे आप सभी को हटाने के लिए लूप कर सकते हैं। एक वैश्विक सरणी लाइन बनाएँ।

var line = []; 
polyline = new google.maps.Polyline({ 
     path: points, 
     strokeColor: "#FF0000", 
     strokeOpacity: 1.0, 
     strokeWeight: 2 
    }); 
line.push(polyline); 

अब आप सभी पॉलीलाइन ऑब्जेक्ट्स को सरणी रेखा में दबा रहे हैं। आप इसे अदृश्य बनाने या इस तरह यह पाशन मानचित्र से निकाल सकते हैं:

for (i=0; i<line.length; i++) 
{       
    line[i].setMap(null); //or line[i].setVisible(false); 
} 
-1
mMap.clear() 

कि लाइन ताज़ा होगी आपके GoogleMap का उदाहरण

+1

टाइप एरर: map.clear फ़ंक्शन नहीं है – johnlowvale

+0

एंड्रॉइड के लिए अच्छा काम करता है! –

+0

विधि स्पष्ट() बस Google मानचित्र ऑब्जेक्ट के लिए मौजूद नहीं है! –