2015-04-29 22 views
8

की तुलना में ज़ूमूम.google.com पर ज़ूम आसान है मैंने देखा है कि maps.google.com पर ज़ूम Google मानचित्र एपीआई के संस्करण 3 का उपयोग करके मेरे कस्टम मानचित्र से अलग (पढ़ा गया: चिकना) व्यवहार करता है। बाद में मुझे पता चला कि यह Google here से डेमो पर भी लागू होता है।Google मानचित्र API v3

क्या Google मानचित्र API v3 का उपयोग करके नक्शे पर समान चिकनी ज़ूम महसूस करने का कोई तरीका है?

मैं समाधान के लिए नेट के चारों ओर खोज करने की कोशिश कर रहा हूं, लेकिन मुझे लगता है कि लोग ज़ूम एनिमेशन कैसे करना चाहते हैं, जो मैं नहीं ढूंढ रहा हूं।

+0

Google मानचित्र Google मानचित्र जावास्क्रिप्ट एपीआई v3 (कम से कम आखिरी बार मुझे पता था) का उपयोग नहीं करता है। – geocodezip

उत्तर

11

मूल Google मानचित्र साइट maps.google.com मानचित्र प्रस्तुत करने के लिए HTML5 कैनवास तत्व का उपयोग करता है। Google मानचित्र API v3 नहीं है। यह वर्तमान में (2015 के उत्तरार्ध तक) Google मानचित्र API का उपयोग करके चिकनी निरंतर ज़ूम व्यवहार प्राप्त करना संभव नहीं है।

परिणामों के बिना जवाब के लिए गूगल डॉक्स और वेब की खोज करने के बाद, मैं कुछ समय निकाला को समझने के लिए API v3 के और कैसे maps.google.com मूल रूप से प्रस्तुत करना और नक्शे प्रदर्शित करने के लिए काम करते हैं।

  1. गूगल मैप्स एपीआई v3चित्र टाइलें से बना एक नक्शे के प्रत्येक एक साथ एकल <div /> कंटेनर में गाया बनाता है: वहाँ एक बड़ा अंतर है कि तुरंत स्पष्ट करता है क्यों एक सतत जूम एपीआई का उपयोग कर काम नहीं करेगा है 256 x 256 px का निश्चित डिफ़ॉल्ट आकार। ज़ूम स्तर को स्विच करते समय प्रत्येक एकल टाइल को एक नई छवि (जो भी प्रकार, संभावित रूप से गतिशील रूप से कस्टम ओवरले के साथ स्टाइल किया जाता है) के साथ फिर से प्रस्तुत किया जाना चाहिए। यह एक बहुत महंगा काम है, इसलिए प्रत्येक अतिरिक्त ज़ूम चरण लोड किए जाने के लिए अतिरिक्त संसाधन जोड़ता है और डीओएम मैनिपुलेशन के माध्यम से पूरे दृश्य को फिर से प्रस्तुत करने के लिए अतिरिक्त गणना लागत जोड़ता है। एक तरल ज़ूम अनुभव लगभग असंभव है, यहां तक ​​कि उच्च CPU/मेमोरी मशीनों पर आधुनिक ब्राउज़रों के साथ भी।

  2. maps.google.com नक्शा दृश्यों प्रतिपादन के लिए एचटीएमएल 5 कैनवास वस्तु का उपयोग करता है (मैं बहुत यकीन है कि वहाँ पुराने ब्राउज़र के लिए एक API v3 शैली वापस आने संस्करण है हूँ)। एक मूल रूप से समर्थित कैनवास ऑब्जेक्ट में ड्रॉइंग डीओएम तत्वों में छवियों को बदलने से कम महंगा है। Google वेक्टर ग्राफिक्स आधारित दृष्टिकोण का उपयोग करता है जो मूल रूप से अतिरिक्त संसाधन लाने की आवश्यकता के बिना निरंतर ज़ूम करने की अनुमति देता है। इसके अतिरिक्त एक विशिष्ट ज़ूम स्तर के लिए आवश्यक जानकारी हालांकि डेटा के छोटे हिस्से के रूप में लाया जा सकता है और ड्राइंग दिनचर्या पर लागू किया जा सकता है।

मुझे यह स्वीकार करना होगा कि मुझे नहीं पता कि यह विस्तार से कैसे काम करता है। यह स्रोत की जांच करके मैंने खोजा है और मुझे उम्मीद है कि यह बहुत अधिक बताता है कि क्यों "चिकनी ज़ूम" वर्तमान में मानचित्र API का उपयोग करके संभव नहीं है। वैसे भी, आइए Google मानचित्र API v4 पर प्रतीक्षा करें!

2

अन्य जावास्क्रिप्ट मैपिंग लाइब्रेरीज़ हैं जो मैकबॉक्स-जीएल और सेसियम जैसे चिकनी ज़ूमिंग की अनुमति देते हैं। वे दोनों maps.google.com की तरह WebGL का उपयोग करते हैं।

https://www.mapbox.com/mapbox-gl-js/example/fitbounds/

https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Camera.html&label=Showcases

0

मुझे लगता है कि अब चाहे गूगल मैप्स जो ओल्ड-स्कूल के लिए उनके नाम हो रहा है, Lite Mode में है पर निर्भर करता है, छवि टाइल आधारित नक्शे, कैनवास के लिए विरोध के रूप में आधारित नक्शे।

System and Browser requirements के लिए Google मानचित्र के दस्तावेज़ के अनुसार, मानचित्र कुछ वीडियो कार्ड के लिए 3 डी अक्षम कर देंगे, और कुछ वीडियो कार्ड के लिए, यह उससे परे हो जाता है और केवल आपको लाइट मोड का उपयोग करने देता है।

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