से google.maps.Map उदाहरण प्राप्त करें मेरे पास एक पृष्ठ पर एक मौजूदा मानचित्र है। मैं HTMLElement जावास्क्रिप्ट ऑब्जेक्ट प्राप्त करने के लिए document.getElementById() की पंक्तियों के साथ कुछ का उपयोग कर उस तत्व का चयन कर सकता हूं। क्या नक्शा प्रारंभ होने पर google.maps.Map का उदाहरण प्राप्त करना संभव है, यानी यह HTMLElement ऑब्जेक्ट या उसके प्रोटोटाइप में एक प्रॉपर्टी है?एक HTMLElement
उत्तर
आप DOM Element
से google.maps.Map
वस्तु है, जो पर गूगल मैप्स वस्तु निर्माण किया गया नहीं मिल सकता है। google.maps.Map
सिर्फ एक रैपर है, जो नक्शा देखने के लिए DOM Element
नियंत्रित करता है, और उस तत्व के पास इसके रैपर का संदर्भ नहीं है।
यदि आपकी समस्या केवल दायरा है, तो map
window
ऑब्जेक्ट की संपत्ति के रूप में बनाएं, और यह आपके पृष्ठ में हर जगह से पहुंच योग्य होगा। आप इनमें से किसी एक का उपयोग करके 'map'
वैश्विक रूप में कर सकते हैं:
window.map = new google.maps.Map(..)
या
map = new google.maps.Map(...) //AVOID 'var'
जब आप मानचित्र प्रारंभ करते हैं तो आप एक उदाहरण बनाते हैं;
var map = new google.maps.Map(document.getElementById("map_element"), options);
आपको लगता है कि उदाहरण का उपयोग जब भी आप एक मार्कर आदि डाल, स्थान बदल रहा है, जैसे कुछ करने के लिए यह एक HTMLElement वस्तु नहीं है चाहता हूँ। हालांकि इसमें getDiv()
विधि है, जो आपको उस HTML तत्व को देता है जिस पर यह चल रहा है।
map.getDiv(); // in this case it returns the element with the id 'map_element'
लेकिन मैं उस उदाहरण को दायरे से बाहर कैसे प्राप्त करूं? जहां तक मेरे प्रश्नों का सवाल है नक्शा जावास्क्रिप्ट की एक पंक्ति से शुरू किया गया है जिसे मैं नहीं बदल सकता और ऐसा लगता है: नया google.maps.Map (el, विकल्प); नोट करें कि आवृत्ति को आवृत्ति में कैसे सहेजा नहीं गया है, क्या यह उस उदाहरण को प्राप्त करना संभव है? –
मुझे पूरा यकीन नहीं है कि यह किया जा सकता है। – keune
यह महान काम कर रहा है e.h. एक ईवेंट श्रोता में: 'marker.map.getDiv()'। –
मैं एक ऐसी ही समस्या थी। मैं बस इतना करना चाहता था कि वे कहां बनाए गए मानचित्रों में हेरफेर करें। मैंने ऐसा कुछ करने की कोशिश की (मुझे लगता है कि यह आपकी भी मदद करेगा)।
function load_map(el_id, lat, lng) {
var point = new google.maps.LatLng(lat,lng);
var myMapOptions = {
scrollwheel:false,
zoom: 15,
center: point,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position: google.maps.ControlPosition.RIGHT_TOP
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL,
position: google.maps.ControlPosition.LEFT_CENTER
},
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById(el_id),myMapOptions);
var marker = new google.maps.Marker({
draggable:true,
map: map,
position: point
});
return({
container:map.getDiv(),
marker:marker,
mapa:map
});
}
क्या इस समारोह करता है कुछ कंटेनर में एक नक्शा बनाने के लिए यह फोन करने के बाद है: मैं समारोह (कम या ज्यादा इस तरह) बना लिया है।
var mapa = load_map('mapa_container', 53.779845, 20.485712);
फ़ंक्शन नक्शा बनाने के दौरान उपयोग किए गए कुछ डेटा वाले ऑब्जेक्ट को वापस कर देगा। एक नक्शा ही मैं बस में हेरफेर कर सकते हैं मेरे मामले में, बनाने के बाद, प्रत्येक नक्शे पर मार्कर अलग mapa
वस्तु का उपयोग कर, उदाहरण के लिए:
mapa.marker.setPosition(new google.maps.LatLng(20,30));
mapa.mapa.setCenter(new google.maps.LatLng(20,30));
यह वही coords के लिए मार्कर की स्थिति और केंद्र नक्शा बदल जाएगा। ध्यान दें कि lng
और lat
मान अलग-अलग हैं, जबकि फ़ंक्शन को कॉल करते समय एक नक्शा बनाता है।
उम्मीद है कि मदद करता है।
यह विंडो में मानचित्र चर को उजागर करने के बजाय एक अच्छा, और अधिक मॉड्यूलर उत्तर है। – apebeast
आप google.maps.Map
DOM Element
से ऑब्जेक्ट प्राप्त कर सकते हैं, थोड़ी सी चाल के साथ।
जब आप मानचित्र ऑब्जेक्ट प्रारंभ करते हैं, तो आपको ऑब्जेक्ट की डेटा विशेषता पर ऑब्जेक्ट को स्टोर करने की आवश्यकता होती है।
उदाहरण:
$.fn.googleMap = function (options) {
var _this = this;
var settings = $.extend({}, {
zoom: 5,
centerLat: 0,
centerLon: 0
}, options);
this.initialize = function() {
var mapOptions = {
zoom: settings.zoom
};
var map = new google.maps.Map(_this.get(0), mapOptions);
// do anything with your map object here,
// eg: centering map, adding markers' events
/********************************************
* This is the trick!
* set map object to element's data attribute
********************************************/
_this.data('map', map);
return _this;
};
// ... more methods
return this;
};
आप एक नक्शा तत्व, जैसे परिभाषित करने के बाद:
var mapCanvas = $('#map-canvas');
$('.location').on('click', function() {
// google map takes time to load, so it's better to get
// the data after map is rendered completely
var map = mapCanvas.data("map");
if (map) {
map.panTo(new google.maps.LatLng(
$(this).data('latitude'),
$(this).data('longitude')
));
}
});
:
var mapCanvas = $('#map-canvas');
var map = mapCanvas.googleMap({
zoom: 5,
centerLat: 0,
centerLong: 0
});
// ... add some pre-load initiation here, eg: add some markers
// then initialize map
map.initialize();
आप तो एलीमेंट आईडी, जैसे का उपयोग करके बाद में नक्शा वस्तु प्राप्त कर सकते हैं
इस विधि का उपयोग करके, आप एक पृष्ठ पर विभिन्न व्यवहार के साथ कई मानचित्र हो सकते हैं।
आपने मुझे 'पृष्ठ पर विभिन्न व्यवहारों के साथ कई मानचित्र प्राप्त कर सकते हैं'। बिल्कुल वही है जो मैं खोज रहा था। तुम मेरे नायक हो। – Stone
महान समाधान! धन्यवाद – emjay
यह मानता है कि लोग jQuery का उपयोग कर रहे हैं। हालांकि यह उत्तर का समाधान प्रदान करता है, यह सीधे तरीके से नहीं करता है। – Andrew
आप पॉलिमर परियोजना से गूगल-मैप घटक का उपयोग कर रहे हैं, तो आप इस तरह मौजूदा नक्शे Dom प्राप्त कर सकते हैं:
:var map = document.querySelector('google-map');
एक बार जब आप किया है कि, नक्शे की वर्तमान उदाहरण द्वारा पहुँचा जा सकता
var currentMapInstance = map.map;
var map = $("#map_canvas").gmap('get','map')
का उपयोग करके एक चर में नक्शा प्राप्त कर सकते हैं और इस चर का उपयोग करके मौजूदा मानचित्र को बदल सकते हैं।
चीयर्स
'gmap (' get ',' map ') कहां से आता है? –
- 1. आईईएम HTML दस्तावेज़ और HTMLElement
- 2. सिंटेक्स त्रुटि, अपरिचित अभिव्यक्ति: # [ऑब्जेक्ट HTMLElement] त्रुटि
- 3. HTMLElement के साथ प्रोग्राम तत्व रूप से लिंक तत्व पर क्लिक कैसे करें?
- 4. एक स्ट्रिंग
- 5. प्रोग्रामिंग के अनुसार ASP.NET वेब पेज पर एक बटन को कैसे क्लिक करें?
- 6. सी #
- 7. कैसे WebBrowser घटक
- 8. वेब ब्रॉउज़र नियंत्रण एजेक्स वेबपृष्ठ अपडेट या फ्रेम
- 9. जावास्क्रिप्ट: स्ट्रिंग
- 10. मैं एक HTML तत्व को जावास्क्रिप्ट ऑब्जेक्ट के रूप में कैसे लॉग कर सकता हूं?
- 11. जावा में HtmlUnit का उपयोग कैसे करें?
- 12. iTextSharp का उपयोग करके टेक्स्ट को औचित्य कैसे दें?
- 13. टाइपस्क्रिप्ट: टाइप सिस्टम
- 14. मैं WebBrowser नियंत्रण के HTML पर स्थानीय स्क्रिप्ट फ़ाइल कैसे जोड़ूं?
- 15. सी # webBrowser.Document: पोस्टबैक
- 16. HTMLDivElement
- 17. क्या एचटीएमएल तत्व को सीधे मॉडल संदर्भ पास करना सही है?
- 18. ExtJS के भीतर सक्रिय तत्व प्राप्त करना?
- 19. वेब क्लाइंट का उपयोग कर डेटा पोस्ट करना
- 20. इटालिक टैग के साथ एचटीएमएल एंकर टैग
- 21. जांचें कि कोई ऑब्जेक्ट
- 22. एल्गोरिथ्म एक बड़ा एक समस्या एक
- 23. कॉपी एक सीवी :: चटाई एक और एक
- 24. एक Git एक स्क्रिप्ट
- 25. एक क्यूआर एक टुकड़ा
- 26. क्रमबद्ध एक और एक
- 27. एक बड़ा एक
- 28. एक फ्लैट एक
- 29. एक संसाधन एक जार
- 30. एक स्ट्रिंग एक सूचक
'var' से बचने के लिए क्यों? (पिछली पंक्ति में) – ZenOut
क्योंकि 'var' एक नया स्थानीय चर (उदाहरण के लिए यदि किसी फ़ंक्शन के अंदर उपयोग किया जाता है, तो एक वैश्विक (यदि मौजूद है) को ओवरराइट करने की बजाय चर को हटा दिया जाएगा। जैसे यदि आपके पास 'मैप' नामक वैश्विक चर है और आप किसी भी फ़ंक्शन के अंदर 'map =' any'' 'का उपयोग करते हैं, तो वैश्विक चर के पास अब से' कुछ भी 'मान होगा। –