मेरे ऐप में, मैं setZoom()
, fitBounds()
, या setOptions()
के माध्यम से प्रोग्रामिंग रूप से ज़ूम परिवर्तन घटनाओं को बंद कर सकता हूं।
MAN = {};
MAN.globalMap = google.maps.Map(document.getElementById('map'));
मैं तो मार्ग सभी कार्यक्रम संबंधी कॉल आवरण कार्यों कि false
करने के लिए एक ध्वज फ्लिप इससे पहले कि वे पर जाने के जूम सेट करने के लिए के माध्यम से ज़ूम स्थापित करने के लिए।
MAN.savedZoom = MAN.globalMap.getZoom();
MAN.saveZoomFlag = true;
// we want it to always be true, unless zoom was
// changed programatically.
MAN.setZoom = function setZoom(zoomLevel) {
console.log("won't save that I'm setting zoomLevel to " + zoomLevel);
this.saveZoomFlag = false;
MAN.globalMap.setZoom(zoomLevel);
};
MAN.fitBounds = function fitBounds(bounds) {
console.log("setting bounds, won't save zoomlevel.");
this.saveZoomFlag = false;
MAN.globalMap.fitBounds(bounds);
};
MAN.setOptions = function setOptions(options) {
console.log("setting options, won't save zoomlevel.");
this.saveZoomFlag = false;
MAN.globalMap.setOptions(options);
};
मैं फिर श्रोताओं की घोषणा करता हूं। पहले तो मुझे केवल पहले घोषित किया गया था, और है कि यह काम कर रहा था नहीं हैरान था:
google.maps.event.addListener(
MAN.globalMap,
'zoom_changed',
function zoom_changed_listener() {
console.log(
"zoom changed to " +
MAN.globalMap.getZoom() + "; " +
(MAN.saveZoomFlag ? "saving." : "not saving.")
);
if (MAN.saveZoomFlag) {
console.trace("saving");
MAN.savedZoom = MAN.globalMap.getZoom();
}
MAN.saveZoomFlag = true;
}
);
आप भी idle
घटना से सहायक हो सकता है, तथापि, अगर आप सिर्फ प्रारंभिक सेट से बचने के लिए कोशिश कर रहे हैं। यहां मानचित्र कार्यक्रमों के बारे में अधिक देखें: https://developers.google.com/maps/documentation/javascript/events
स्रोत
2017-02-14 06:22:17
यही कारण है मैं वर्तमान में क्या कर रहा हूँ, लेकिन जब वहाँ एक मार्कर है और मैं सिर्फ एक मार्कर के लिए सीमा हो और map.fitBounds (सीमा करना) यह ज़ूम_changed घटना दो बार ट्रिगर करता है।तो जिस तरह से मैं इसे हल करता हूं, अब मैं एक वैश्विक सरणी रखता हूं और हर बार जब मैं फिट कॉल करता हूं तो उस वस्तु में धक्का देता हूं लेकिन जब दक्षिण पश्चिम और उत्तर पूर्व समन्वय सीमाएं समान होती हैं (जिसका अर्थ है कि आपके पास एक ही स्थान पर सभी मार्कर हैं या केवल एक मार्कर हैं मानचित्र) तो मैं किसी अन्य ऑब्जेक्ट को सरणी में दबाता हूं और जब सरणी खाली होती है तो सर्वर –