2012-12-04 16 views
7

यह गूगल मैप्स एपीआई v3 के बारे में है:एपीआई के माध्यम से कस्टम Google मानचित्र परतें?

जब आप आकर्षित विभिन्न Polylines, Polygons, MapLabels या एक कस्टम गूगल मानचित्र में अन्य ओवरले तत्वों के किसी भी, यह उन्हें mapPane पर छोड़ता है। क्या किसी भी तरह से कई कस्टम परतों को बनाना संभव है कि आप ओवरले ऑब्जेक्ट्स को आकर्षित कर सकते हैं और फिर उन परतों को आसानी से सक्षम/अक्षम (दिखाएं/छुपाएं) कर सकते हैं? https://developers.google.com/maps/documentation/javascript/layers

लेकिन कस्टम परतों के बारे में कुछ भी नहीं:

मैं यहाँ परतों के बारे में दस्तावेज़ देखें।

उत्तर

6

वैसा करने के लिए एक कस्टम OverlayView बना सकते हैं:

var LayerOverlay = function() { 
    this.overlays = []; 
} 
LayerOverlay.prototype = new google.maps.OverlayView(); 
LayerOverlay.prototype.addOverlay = function (overlay) { 
    this.overlays.push(overlay); 
}; 
LayerOverlay.prototype.updateOverlays = function() { 
    for (var i = 0; i < this.overlays.length; i++) { 
    this.overlays[i].setMap(this.getMap()); 
    } 
}; 
LayerOverlay.prototype.draw = function() {}; 
LayerOverlay.prototype.onAdd = LayerOverlay.prototype.updateOverlays; 
LayerOverlay.prototype.onRemove = LayerOverlay.prototype.updateOverlays; 

फिर एक बार LayerOverlay करने के लिए अपने ओवरले जोड़ने के बाद, कर सकते हैं या उन्हें केवल एक setMap साथ छिपाने:

var layer1 = new LayerOverlay(); 
layer1.addOverlay(createMarker()); 
layer1.addOverlay(createMarker()); 
layer1.addOverlay(createMarker()); 

// hide all markers 
layer1.setMap(null); 

// show all markers 
layer1.setMap(map); 
+0

बहुत दिलचस्प .. क्या यह Google मानचित्र सड़कों/इलाके/उपग्रह जैसे चीजों के बीच टॉगल करता है? –

+0

आंतरिक Google मानचित्र कोड obfuscated किया गया है, यह कहना मुश्किल है। –

+0

धन्यवाद। क्या एपीआई संदर्भ के अलावा 'ओवरले व्यू' पर कोई अन्य दस्तावेज है? अन्य उदाहरणों के साथ कुछ भी? मैं उत्सुक हूं अगर अन्य तरीकों से मैं इसका उपयोग कर सकता हूं कि मैं सोच नहीं रहा हूं। –

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

  • कोई संबंधित समस्या नहीं^_^