ओवरराइड किए बिना पृष्ठ पर Google मानचित्र एम्बेड करें मैं मोबाइल के लिए साइट को अनुकूलित करने पर काम कर रहा हूं। हमारे पास एक स्थान पृष्ठ है जिसमें Google मानचित्र API के माध्यम से किसी स्थान और स्थान का मानचित्र शामिल है। (v2 - मुझे पता है कि इसे बहिष्कृत किया गया है, लेकिन मैंने अपग्रेड करने का समय उचित नहीं ठहराया है, "यदि यह तोड़ा नहीं गया है ..") मैं मूल जानकारी के साथ एक कॉलम लेआउट का उपयोग करना चाहता हूं जिसके बाद नक्शे के बाद अधिक जानकारी प्राप्त होती है।आईफोन स्क्रॉल व्यवहार
अब जब मैं मानचित्र पर पहुंचने के बाद, आईफोन पर मोबाइल पेज को स्क्रॉल करने के लिए अपनी उंगली का उपयोग करता हूं, तो पेज स्क्रॉलिंग ओवरराइड हो जाती है और नक्शा पैनिंग शुरू होता है। पृष्ठ के आगे स्क्रॉल करने का एकमात्र तरीका यह है कि ऐसी जगह उपलब्ध है, मेरी उंगली को मानचित्र के ऊपर या नीचे रखना है। यदि मैं नक्शा खींचने को अक्षम करता हूं, तो जब मैं नीचे स्क्रॉल करना शुरू करता हूं और मानचित्र पर जाता हूं तो यह पैन नहीं होता है लेकिन पृष्ठ या तो स्क्रॉल नहीं करता है। मैं मानचित्र को एक स्थिर छवि के रूप में देखना चाहता हूं जिसे मैं अतीत स्क्रॉल कर सकता हूं, लेकिन फिर भी ज़ूम बटनों को अनुमति देता हूं और मानचित्र को कोड किए गए एक चुनिंदा फ़ील्ड के माध्यम से दिशाओं के साथ फिर से खींचा जा सकता है, इसलिए literal static image कोई समाधान नहीं है।
मुझे this post that required similar functionality मिला, लेकिन यह v3 का उपयोग कर रहा है। मुझे लगता है कि मुझे बस इतना करना है कि "नक्शा कंटेनर में टच इवेंट जोड़ें", लेकिन मैं जावास्क्रिप्ट के उस हिस्से से परिचित नहीं हूं, और जो नीचे है वह सामान्य स्क्रॉलिंग की अनुमति नहीं देता है। क्या मुझे v3 पर बुलेट काटने की ज़रूरत है, या क्या मेरे पास टच इवेंट जोड़ने पर एक बग है जिसके पास एक सरल जावास्क्रिप्ट सुधार है जो मैं चाहता हूं?
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
geocoder = new GClientGeocoder();
}
}
function showAddress(address, zoom) {
//clipped... this part works fine
}
//These three lines create a map that my finger pans
initialize();
showAddress("[clipped.. street, zip code]");
map.addControl(new GSmallZoomControl3D());
//This stops the map pan but still prevents normal page finger scrolling
map.disableDragging();
//If done right could this allow normal page finger scrolling??
var dragFlag = false;
map.addEventListener("touchstart", function(e){
dragFlag = true;
start = (events == "touch") ? e.touches[0].pageY : e.clientY;
},true);
map.addEventListener("touchend", function(){
dragFlag = false;
}, true);
map.addEventListener("touchmove",function(
if (!dragFlag) return;
end = (events == "touch") ? e.touches[0].pageY : e.clientY;
window.scrollBy(0,(start - end));
}, true);
मैं भी कोई लाभ नहीं हुआ document.getElementById("map_canvas").addEventListener
या document.addEventListener
साथ map.addEventListener
की जगह की कोशिश की है।
नक्शा एक iframe Google पर होस्ट किए भीतर है और कुछ गूगल जाने जब तक कि वहाँ है आप जावास्क्रिप्ट के साथ टॉगल की, आप शायद भाग्य से बाहर हैं। एपीआई v2 को बहिष्कृत कर दिया गया है, इसलिए यदि आपको संस्करण 3 का उपयोग करने वाला कुछ मिलता है जो काम करता है, तो स्विच क्यों न करें? एपीआई v3 में कई और विशेषताएं हैं और आईएमएचओ, वैसे भी उपयोग करना आसान है। (एक के लिए एपीआई कुंजी की आवश्यकता नहीं है!) – Sparky
मैंने इसे पोस्ट करने से पहले v3 में देखना शुरू कर दिया। कोई एपीआई कुंजी अच्छा नहीं है, लेकिन हमें जियोकोडिंग फ़ंक्शन का उपयोग करने की आवश्यकता है, ऐसा लगता है कि इसे एपीआई कुंजी की आवश्यकता होती है और ऐसा लगता है कि इसकी प्रतिक्रिया v2 से अधिक जटिल है, और हमारे पास कुछ अन्य पेज भी हैं जो इसका उपयोग करते हैं। असल में मैं एक त्वरित v2 फिक्स के साथ v3 के लिए रिकोडिंग के कुछ घंटों से बचने की कोशिश कर रहा हूं, लेकिन यदि यह संभव नहीं है तो मैं समझदार अपग्रेड कर दूंगा। – joshuahedlund
अब मैंने v3 में अपग्रेड किया है लेकिन काम करने के लिए टच इवेंट नहीं मिल सकता है। मैं त्रुटियों के लिए अपने जावास्क्रिप्ट पर पोरिंग कर रहा हूं लेकिन मुझे कुछ भी जवाब देने के लिए टच इवेंट्स प्राप्त करने में परेशानी हो रही है। – joshuahedlund