Google मानचित्र ज़ूम स्तर के किस अनुपात के अनुरूप हैं?


83

क्या कोई मुझे Google मैप्स के "ज़ूम स्तर" के आंकड़ों के वास्तविक अनुपात पर एक लिंक (या कुछ विवरण) प्रदान कर सकता है?

उदा। गूगल मैप्स लेवल 13 = 1: 20000


1
पहली सूचना के आधार पर मैंने यह कार्य किया, शायद कोई इसका उपयोग कर सके! समारोह setZoomLevel (मीटर) {//console.log ( Zoom level set meters: ${meters}); var zoomfactor = 1; अगर (मीटर <1128) {zoomfactor = 15; } और यदि ((मीटर> 1128) && (मीटर <2256)) {ज़ूमफैक्टोर = 14; } और यदि ((मीटर> 2256) && (मीटर <4513)) {ज़ूमफैक्टोर = 13; } और यदि ((मीटर> 4513) && (मीटर <9027)) {ज़ूमफैक्टोर = 12; } और यदि ((मीटर> 9027) && (मीटर <18055)) {zoomfactor = 11; } और (अगर (मीटर> 18055) && (मीटर <36111)) {zoomfactor = 10; } और अगर ((मीटर> 36111) && (72 <
Friis1978

जवाबों:


79

यदि आप Google मैप्स या आभासी पृथ्वी पर ओवरलेइंग और एक टाइलिंग स्कीम बनाने की योजना बना रहे हैं, तो मुझे लगता है कि आप जो देख रहे हैं, वह प्रत्येक ज़ूम स्तर के लिए पैमाने हैं, इनका उपयोग करें:

20 : 1128.497220
19 : 2256.994440
18 : 4513.988880
17 : 9027.977761
16 : 18055.955520
15 : 36111.911040
14 : 72223.822090
13 : 144447.644200
12 : 288895.288400
11 : 577790.576700
10 : 1155581.153000
9  : 2311162.307000
8  : 4622324.614000
7  : 9244649.227000
6  : 18489298.450000
5  : 36978596.910000
4  : 73957193.820000
3  : 147914387.600000
2  : 295828775.300000
1  : 591657550.500000

स्रोत: http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htm


2
@capdragon धन्यवाद। यह एक प्रसिद्ध स्रोत (ESRI) है, लेकिन यह हमें अभी भी आश्चर्यचकित करता है कि वे इन पैमानों के साथ कैसे आए।
whuber

4
तर्कसंगत किसके लिए महत्वपूर्ण है? मैं प्रश्न में तर्कसंगत का कोई उल्लेख नहीं देखता। मेरा मानना ​​है कि वह अपने सीधे आगे के सवाल का सीधा जवाब चाहते हैं।
कैप्टनड्रैगन

4
@ बिना कारण के, किसी गलत उत्तर को सही उत्तर देना मुश्किल या असंभव है। बिना किसी कारण के, उत्तरदाता के अधिकार पर भरोसा करने के लिए छोड़ दिया जाता है। मुझे पूरा यकीन है कि इस थ्रेड में अन्य उत्तरों के कारण वोटिंग हो रही है और आपकी शुद्धता या सीधेपन से कोई लेना-देना नहीं है - आपका बंच का सबसे आधिकारिक और सीधा है - बल्कि इसके पास सब कुछ है दूसरों द्वारा दिए गए तर्क के साथ करते हैं। BTW मैं तुम्हारा नहीं है।
whuber

3
साभार: +1 आप लोग शायद भूगोलवेत्ता या सुदूर संवेदन गुरु हैं। मैं केवल एक जीआईएस डेवलपर हूं जो आदमी को उसके जवाब तक पहुंचने में मदद करना चाहता है। मेरा एक सहकर्मी (PHD प्रकार, डबल MIT मेजर) हर बार एक घंटे के व्याख्यान में जाता है जब मैं उससे एक साधारण प्रश्न पूछता हूं और मुझे रास्ते से हटा देता है। मैं उनसे अब सवाल नहीं करता (विज्ञान में मेरे पास मास्टर्स है)। मैं समझता हूं कि अन्य लोग तर्कसंगत और इसके आगे के मांस में उतरना पसंद करते हैं, लेकिन हम में से बहुत से लोग यह जानने के लिए अनभिज्ञ हैं कि वे किस बारे में बात कर रहे हैं। IMHO वे जवाब भ्रमित कर रहे थे जो उनके सवाल का जवाब नहीं देते।
कैप्टनड्रैगन

10
तराजू को चुना गया ताकि उन्हें समान रूप से रेखापुंज टाइलों से विभाजित किया जा सके जो आधार 2 में हैं, (उदाहरण 128, 512 ...)। बिंग इसी तरह से करता है msdn.microsoft.com/en-us/library/bb259689.aspx
Garrett Hall

44

मुझे यह प्रतिक्रिया मिली - Google कर्मचारी द्वारा लिखी गई - यह शायद सबसे सटीक होगी:

यह सटीक नहीं होगा, क्योंकि व्यापारी प्रक्षेपण (जैसे Google मानचित्र) के साथ एक मानचित्र का संकल्प अक्षांश पर निर्भर है।

इस सूत्र का उपयोग करके गणना करना संभव है:

metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / Math.pow(2, zoom)

यह इस धारणा पर आधारित है कि पृथ्वी की त्रिज्या 6378137 मी है। हम किस मूल्य का उपयोग करते हैं :)

इससे लिया गया: https://groups.google.com/forum/# ​​.topic / google-maps-js-api-v3 / hDRO4oHVSeM

BTW - मैं अनुमान लगा रहा हूँ कि:

'latLng.lat()' = map.getCenter.lat()
'zoom' = map.getZoom()

आपके सूत्र के बराबर क्या है? इसे अक्षांश = 2.92 और ज़ूम 13 के लिए करते हुए मुझे 19.08 मिला। 19.08 क्या है?
रॉड्रिगो

4
@ रोड्रिगो प्रति पिक्सेल
जस्टिन पोहेल्ट

3
मैं गवाही दे सकता हूं कि यह उत्तर तीन साल बाद भी सही और बहुत सटीक है। यह स्वीकृत उत्तर होना चाहिए।
जॉन

क्या यह केवल x या y पर भी लागू होता है ? क्या जावास्क्रिप्ट एपीआई के माध्यम से Google मानचित्र दोनों अक्षों के लिए समान पैमाने का उपयोग करता है?
पुराना गीज़र

@OldGeezer हां यह सभी दिशाओं में काम करता है। मर्केटर में किसी भी बिंदु पर रैखिक विकृति सभी दिशाओं में समान है। यही कारण है कि यह फिसलन नक्शे के लिए उपयोग किया जाता है। जब आप अपने तरीके से ज़ूम इन करते हैं तो आपको एक बहुत कम विरूपण नक्शा मिलता है। एक बार जब आप पैमाने के लिए क्षतिपूर्ति करते हैं, तो यही उत्तर देता है।
किमी smithkm

30

गणित को समझने में आपकी मदद करने के लिए (सटीक गणना नहीं, यह सिर्फ दृष्टांत के लिए है):

  • Google के वेब मैप टाइल में 256 पिक्सेल चौड़ाई है
  • मान लीजिए कि आपके कंप्यूटर मॉनीटर में 100 पिक्सेल प्रति इंच (PPI) है। इसका मतलब है कि 256 पिक्सेल की लंबाई लगभग 6.5 सेमी है। और वह 0.065 मी

  • पर ज़ूम स्तर 0 , देशांतर के पूरे 360 डिग्री दिखाई दे रहे हैं एक एकल टाइल में । आप इसे Google मानचित्र में नहीं देख सकते क्योंकि यह स्वचालित रूप से ज़ूम स्तर 1 पर चला जाता है, लेकिन आप इसे OpenStreetMap के नक्शे पर देख सकते हैं (यह उसी टाइलिंग योजना का उपयोग करता है)।

  • भूमध्य रेखा पर 360 अवक्षेपण पृथ्वी की परिधि के बराबर है, 40,075.16 किमी, जो 40075160 मीटर है

  • 40065160 मीटर को 0.065 मीटर से विभाजित करें और आपको 616313361 मिलेगा , जो 100 DPI के साथ कंप्यूटर मॉनिटर के लिए भूमध्य रेखा पर ज़ूम स्तर 0 का एक पैमाना है।

  • तो मुद्दा यह है कि पैमाना आपके मॉनिटर के PPI और अक्षांश पर (मर्केटर प्रोजेक्शन के कारण) पर निर्भर करता है
  • ज़ूम लेवल 1 के लिए, स्केल ज़ूम लेवल 0 का एक आधा है
  • ...
  • ज़ूम स्तर N के लिए, स्केल ज़ूम स्तर N-1 की तुलना में आधा है

यह भी देखें: http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F


3
यह पैमाना वास्तव में उत्पन्न मानचित्र चित्रों की DPI पर निर्भर करता है। आमतौर पर उपयोग किए जाने वाले दो रिज़ॉल्यूशन 96DPI (यही Google मानचित्र टाइल हैं) और 72DPI हैं।
सास इवेटिक

96DPI के साथ स्केल 591657550.500000इस उत्तर के अनुसार लेवल 0 है। लेकिन @CaptDragon के अनुसार Level 1 है। मुझे Google मानचित्र के साथ गणना करने के लिए स्तर 1 से शुरू करने पर विचार करना चाहिए?
डगलस नासिफ रोमा जूनियर

17

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


2
यह सही है, गोलाकार व्यापारी (Google प्रोजेक्शन) समान पैमाने को संरक्षित नहीं करता है क्योंकि आप भूमध्य रेखा से दूर जाते हैं। Mapnik के स्केल और स्केल हरों लेख: कुछ उत्कृष्ट संदर्भ के लिए trac.mapnik.org/wiki/ScaleAndPpi और भी OSM के पूछे जाने वाले प्रश्न: wiki.openstreetmap.org/wiki/...
मैनिंग

12

सीधा आधिकारिक सही उत्तर:

591657550.500000 / 2^(level-1)

यह आपको ज़ूम स्तर में प्रवेश करते हुए, ऊपर दी गई तालिका देता है।

इसे jsfiddle.net पर लाइव करने का प्रयास करें

क्योंकि सवाल केवल Google MAPS का है, EARTH का नहीं, OP 3D ज्यामिति की परवाह नहीं करता है। Google मानचित्र ALREADY के समतल हैं इसलिए 1 पिक्सेल हमेशा एक ही दूरी (DEGREES में, जो कि एक Google मानचित्र के लिए चिंता का विषय है), यहाँ और इक्वेटर में ध्रुवों की तरह है।

वैसे, क्या आपको एहसास हुआ कि दुनिया के नक्शे की पहली पिक्सेल पंक्ति के अंदर, पैमाना 1: 1 है?


5
591657550.500000 संख्या क्या दर्शाती है?
जस्टिन डियरिंग

2
@Sergio सिर्फ 591657550.5 ही क्यों?
Birowsky

2
"संख्या 256 पिक्सेल के कई पर सेट किए जा रहे टाइल रिज़ॉल्यूशन से आती है, और स्क्रीन रिज़ॉल्यूशन (96 डीपीआई) से" gis.stackexchange.com/a/111589/92997
juffel

काम नहीं करता है - यह अक्षांश पर निर्भर करता है, लेकिन आपका सूत्र नहीं है
इवगेनी वोरोबि

9

Microsoft से पुण्य पृथ्वी टाइल प्रणाली के प्रलेखन में एक ऐसी तालिका है । लेकिन जैसा कि GuillaumeC ने कहा है कि मान अक्षांश और स्क्रीन रिज़ॉल्यूशन पर निर्भर करता है। तालिका भूमध्य रेखा पर मापा गया और 96 डीपीआई के स्क्रीन रिज़ॉल्यूशन पर मान देता है।

PS: इसके बारे में निश्चित नहीं है, लेकिन Google द्वारा ज़ूम स्तरों की तुलना में Microsoft द्वारा ज़ूम स्तरों को 1 से स्थानांतरित किया जा सकता है। लेकिन वे निश्चित रूप से उसी प्रक्षेपण का उपयोग करते हैं ताकि मान Google के लिए सही रहें।


7

त्रिज्या @ भूमध्य रेखा 6,378,137 मीटर (WGS-84) सटीक

भूमध्य रेखा पर परिधि = 40,075,017 मीटर (2 )r)

ज़ूम स्तर 24 परिधि में 2 से 32 शक्ति (4,294,967,296) पिक्सल का उपयोग करता है।

इक्वेटोरियल सर्कुलेशन / 2 32 = .009330692 मीटर प्रति पिक्सेल

अक्षांश पर इकाई = (कोसाइन ऑफ अक्षांश) X (भूमध्य रेखा पर इकाई)

ज़ूम स्तर प्रत्येक वेतन वृद्धि को दोगुना करता है।

1 फुट (अंतर्राष्ट्रीय) = 0.3048 मीटर

संपादित करें

अच्छी तरह से वास्तव में इसके साथ शुरू करने के लिए एक वैध सवाल नहीं है। स्केल अनुपात मुद्रित दस्तावेजों के सापेक्ष होते हैं न कि कंप्यूटर स्क्रीन के। किसी भी सटीकता के साथ इन छवियों का उपयोग करने के लिए आपको प्रत्येक पिक्सेल के आयाम को जानना होगा, फिर उस छवि को मापें जो आपके ओवरले के साथ है।

तो 15-20 साल पहले किसी ने WGS-84 को आधार डेटा के रूप में लिया। (पिछली पोस्ट में ध्यान दें कि किसी ने 40,075,160 के मूल्य का उपयोग किया है मैंने इसे कुछ स्थानों पर विकिपीडिया में देखा है और यह गलत है। सही मूल्य 40,075,017 है।

फिर उन्होंने इसे लिया और पूर्ण 32 बिट पूर्णांक द्वारा विभाजित किया। यह एक तार्किक विकल्प है क्योंकि यह वैश्विक सटीकता को लगभग एक सेंटीमीटर तक पहुंचाता है जो हवाई कल्पना के लिए बहुत है। 32 बिट पूर्णांक स्टोर और प्रोसेस करने के लिए भी कुशल हैं।

यह स्तर 24 क्यों चुना गया था, मुझे नहीं पता, लेकिन यहां किसी और ने काम किया था 0 आपको पृथ्वी के लिए 256 पिक्सेल टाइल तक नीचे ले जाता है।

अब एक उदाहरण के लिए कि उपरोक्त डेटा का उपयोग कैसे किया जाए। कहते हैं कि मैं ज़ूम लेवल 20 पर एक छवि रखता हूं (जैसा कि वर्तमान में ज़ूम करने पर वे आपको मिलते हैं) ले 0.009330692 (भूमध्य रेखा पर 24 ज़ूम करें) इसे ज़ूम 23 के लिए दोगुना करें, ज़ूम 22 के लिए फिर से, ज़ूम 21 के लिए फिर से और ज़ूम 20 के लिए एक अंतिम बार। .अब आपके पास 0.149231071 होना चाहिए।

अब हम कहते हैं कि हमारी छवि अक्षांश 45 पर है। उस (0.707106781) का कोसाइन लें और इसे हमारे 0.149231071 से गुणा करें और यह आपको 0.105564729 मीटर देगा। यही कारण है कि ज़ूम स्तर 20 पर अक्षांश 45 पर एक छवि से एक पिक्सेल की लंबाई और ऊंचाई है। यदि आप उस क्षेत्र की 1000 x 1000 पिक्सेल की छवि को कैप्चर करते हैं, तो आयाम 105.56 मीटर वर्ग है। यदि आप चाहते हैं कि पैर 0.3048 विभाजित हों

सूत्रों के अनुसार I Essencial ने Google और MS मैपिंग समर्थन साइटों सहित वेब पर पाए जाने वाले विभिन्न जानकारी और दस्तावेज़ों से लगभग 5 साल पहले इंजीनियर को उलट दिया।

मैंने समय के इस सौ का उपयोग किया है और इसे वास्तव में क्षेत्र सर्वेक्षण डेटा और इसके हमेशा सही होने के साथ ओवरलेइंग किया है। इसे यहां पोस्ट की गई किसी भी तालिका के विरुद्ध जांचें और संख्याओं का मिलान होगा।


2
मुझे यकीन नहीं है कि यह सवाल का जवाब कैसे देता है।
देवदत्त तेंग्शे

मैं @Dddatta से सहमत हूं, क्या आप कृपया एक स्रोत और कुछ संदर्भ प्रदान कर सकते हैं।
आरोन

यकीन नहीं होता कि ये टिप्पणियां संपादित होने से पहले या बाद में थीं, लेकिन मैंने इस जवाब का इस्तेमाल किया और यह बढ़िया काम करता है
bjnortier

4

बस कुछ गणना की और निम्नलिखित परिणाम प्राप्त किए:

Google मैप्स में 1 किमी शासक (मानचित्र के नीचे बाईं ओर) दिखाया गया है, जो ज़ूम स्तर पर लंबाई में 90 पिक्सेल है। इसका मतलब निम्न है:

स्क्रीन रिज़ॉल्यूशन मानकर 96 dpi या 36 dpcm है, ज़ूम लेवल 13 में हमारे पास 1cm में 0.4km (36/90) है, जो 96dpi स्क्रीन के लिए 1: 40,000 के मैप स्केल की पैदावार देता है।

स्क्रीन पर विभिन्न परिचालनों के लिए आधार के रूप में 90px लेना सबसे अच्छा है, क्योंकि सभी नंबर सभी ज़ूम स्तरों पर गोल होंगे, अर्थात

  • ज़ूम स्तर 12: 90 किमी में 2 किमी
  • जूम स्तर 11: 4 किमी 90 पीएक्स में
  • ज़ूम लेवल 10: 8 किमी 90 पीएक्स में

और इसी तरह।

ध्यान दें कि यह एक सन्निकटन है जो बड़े के बजाय छोटे तराजू पर अधिक या कम ठीक काम करना चाहिए।

(और Google को अंत में गोल संख्या पसंद है ...)


1
यदि आप बारीकी से देखते हैं, तो आप पाएंगे कि आपके द्वारा देखे जा रहे क्षेत्र के अक्षांश के आधार पर रेखा की लंबाई बदल जाती है।
rcoup

1
यह केवल एक विशिष्ट अक्षांश पर मान्य है, जैसा कि @rcoup ने उल्लेख किया है। न केवल स्केल बार की लंबाई बदलती है, बल्कि दूरी भी इसका प्रतिनिधित्व करती है। ज़ूम 13 में इस उदाहरण को जारी रखने के लिए, स्केल बार द्वारा दर्शाई गई दूरी नॉर्थ केप (71 ° अक्षांश) में 2 किमी, 45 किमी अक्षांश के आसपास 1 किमी और भूमध्य रेखा पर 500 मीटर है।
फ्रांस्वा

3

प्रदान की गई सभी जानकारी के आधार पर, मैंने एक फ़ंक्शन बनाया है जो मानचित्र पर लागू किए गए सबसे अच्छे z देता है जब आप एक क्षैतिज रेखा चाहते हैं जो प्रदर्शित मानचित्र के N% का प्रतिनिधित्व करता है।

प्रदर्शित मानचित्र की अपनी पिक्सेल चौड़ाई है।

function calculateZoom(WidthPixel,Ratio,Lat,Length){
    // from a segment Length (km), 
    // with size ratio of the segment expected on a map (70%),
    // with a map WidthPixel width in pixels (100px),
    // and a latitude (45°) we can get the best Zoom
    // assume earth is a perfect ball with radius : 6,378,137m and
    //      circumference at the equator = 40,075,016.7 m
    // The full world on google map is available in tiles of 256 px; 
    // it has a ratio of 156543.03392 (px/m).
    // For Z = 0; 
    // pixel scale at the Lat_level is ( 156543,03392 * cos ( PI * (Lat/180) ))
    // The map scale increases at the rate of square root of Z.
    //
    Length = Length *1000;                     //Length is in Km
    var k = WidthPixel * 156543.03392 * Math.cos(Lat * Math.PI / 180);        //k = circumference of the world at the Lat_level, for Z=0 
    var myZoom = Math.round( Math.log( (Ratio * k)/(Length*100) )/Math.LN2 );
    myZoom =  myZoom -1;                   // Z starts from 0 instead of 1
    //console.log("calculateZoom: width "+WidthPixel+" Ratio "+Ratio+" Lat "+Lat+" length "+Length+" (m) calculated zoom "+ myZoom);

    // not used but it could be useful for some: Part of the world size at the Lat 
    MapDim = k /Math.pow(2,myZoom);
    //console.log("calculateZoom: size of the map at the Lat: "+MapDim + " meters.");
    //console.log("calculateZoom: world circumference at the Lat: " +k+ " meters.");
    return(myZoom);
}

3

मैं अभी तक एक टिप्पणी नहीं जोड़ सकता लेकिन यह पीट के उत्तर का एक संभावित स्रोत है: https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates

[...] ध्यान दें कि प्रत्येक बढ़ता हुआ ज़ूम स्तर x और y दोनों दिशाओं में दो गुना बड़ा है। इसलिए, प्रत्येक उच्च ज़ूम स्तर में पूर्ववर्ती स्तर के समान चार गुना अधिक रिज़ॉल्यूशन होता है। उदाहरण के लिए, ज़ूम स्तर 1 पर, नक्शे में 4 गुणा 256x256 पिक्सेल टाइलें होती हैं, जिसके परिणामस्वरूप 512x512 का पिक्सेल स्थान होता है। ज़ूम स्तर 19 पर, मानचित्र पर प्रत्येक x और y पिक्सेल को 0 और 256 * 2 19 के बीच के मान का उपयोग करके संदर्भित किया जा सकता है


1

मैंने चार ज़ूम स्तरों के लिए पैमानों की गणना की:

ज़ूम स्तर | स्केल 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000

ऐसा लगता है कि जूम स्तर दोगुना हो गया है क्योंकि एक कदम बढ़ गया है। इसलिए, मुझे उम्मीद है कि जूम स्तर 16 के लिए स्केल 1: 8000 और इतने पर होगा।


3
GIS.SE में आपका स्वागत है! क्या आप कृपया कोई स्रोत प्रदान कर सकते हैं या इसकी गणना कैसे की गई?
पॉल

0

हाय मुझे लगता है कि मैंने 1pixel = 11.627 किमी की सीधी रेखा में गणना की है; पृथ्वी की त्रिज्या को ध्यान में नहीं रखते। यहां वीडियो का लिंक दिया गया है जिसमें बताया गया है: https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be । आशा है कि अपने मन को साफ करें।


ऐसा नहीं होता। एक पिक्सेल का मान अक्षांश पर निर्भर करता है।
जॉन पॉवेल

ओह, मैं देख रहा हूँ, नहीं कि जटिल मैं में चला गया।
श्री टोटार्डो 19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.