2012-04-26 13 views
11

पर क्लिक किए बिना Google मानचित्र पर तीर कुंजी नेविगेशन मैंने Google मानचित्र API दस्तावेज़ों पर खोज करने की कोशिश की और यहां भी लेकिन मुझे यह नहीं पता कि यह कैसे किया जाए।मैप

मैं इसे सक्षम करने के लिए मानचित्र क्षेत्र पर क्लिक करने की आवश्यकता के बिना, मेरे मानचित्र पर डिफ़ॉल्ट रूप से तीर कुंजी नेविगेशन सेट करने का प्रयास कर रहा हूं।

map.getDiv().focus(); 
document.getElementById("map_canvas").focus(); 
google.maps.event.trigger(map, 'rightclick'); 

किसी को भी एक सुराग है कि कैसे किया जा सकता:

मैं सफलता के बिना निम्नलिखित समाधान की कोशिश की?

सभी को धन्यवाद।

+0

क्या आपका मतलब कुंजीपटल पर तीर कुंजी के साथ मानचित्र की पैनिंग को नियंत्रित करना है? –

+3

इस प्रश्न का उत्तर मदद कर सकता है: http://stackoverflow.com/questions/9195814/google-maps-v3-keyboard-accessibility/9218055#9218055 – Marcelo

उत्तर

4

चीजों की युगल यहां ध्यान देने के लिए, बस .focus() का उपयोग कर या ट्रिगर #map div तत्व पर एक क्लिक कार्रवाई चाल से काम नहीं चलेगा, क्योंकि उन कार्यों नक्शा वास्तव में डोम पर प्रदान किया जाता है से पहले जगह ले लो। तो, स्वीकार करने वाली पहली बात tilesloaded घटना का उपयोग है जो Google मानचित्र लाइब्रेरी प्रदान करता है।

google.maps.event.addListener(map, 'tilesloaded', function() { 
    //do actions 
}); 

दूसरी बात मैं यह पता लगाने के लिए आया था तुम सिर्फ घटना श्रोता अंदर $('#map').click() नहीं जोड़ सकते है। ऐसा इसलिए है क्योंकि #map कंटेनर div है - Google मानचित्र स्क्रिप्ट वास्तव में इसके शीर्ष पर अन्य divs का एक पूरा समूह प्रस्तुत करता है (जिसमें उच्च z-indices हैं और वास्तव में आपके मानचित्र टाइल्स भी हैं)। चारों ओर हैकिंग का एक छोटा सा है, और jQuery के साथ आप div कि टाइल्स शामिल करने के लिए नीचे संकीर्ण और कि div ... जिसके परिणामस्वरूप कोड पर क्लिक करें घटना को ट्रिगर कर सकते था:

google.maps.event.addListener(map, 'tilesloaded', function() {  
    $("#map").children().children().first().children().trigger('click'); 
}); 

मैं Chrome की देव उपकरणों का इस्तेमाल किया संकीर्ण करने के लिए #map से उस div को पार करने के लिए टाइल युक्त डिवीजन और उपयोग की गई jquery की children() विधि। यदि आप उस कोड को अपने init फ़ंक्शन में चिपकते हैं, तो आपको जाने के लिए अच्छा होना चाहिए। समाधान के एक उदाहरण उदाहरण के साथ यहां JSfiddle है।

+0

इसके अलावा, मुझे आशा है कि Google पर ध्यान केंद्रित करने के लिए मूल विधि के साथ आता है नक्शा कंटेनर - या शुरू होने पर इसे मानचित्र विकल्प के रूप में भी रखें - अपने नए 3.10 रिलीज में। मानचित्र पर ध्यान केंद्रित करने के लिए बहुत से डोम लुकअप करने से नफरत होगी। –

+0

अच्छा समाधान, मेरी इच्छा है कि टाइल कंटेनर को भंगुर डोम ट्रैवर्सल पथ पर भरोसा न किए बिना एक अच्छा तरीका था, लेकिन फिर भी: यह समाधान काम करता है और बक्षीस प्राप्त करता है! – JasonWyatt