हल:
Androd गूगल एपीआई से
: zoomlevel नक्शे के zoomlevel सेट। मूल्य 1 और 21 के बीच होने के लिए क्लैंप किया जाएगा, हालांकि सभी क्षेत्रों में उच्च ज़ूम स्तर पर टाइल्स नहीं हैं। यह सिर्फ ज़ूम का स्तर सीधे सेट करता है; पैरामीटर: ज़ूमलेवल - ज़ूमलेवल 1 पर, पृथ्वी का भूमध्य रेखा 256 पिक्सेल लंबा है। प्रत्येक क्रमिक ज़ूम स्तर को 2. के कारक द्वारा बढ़ाया जाता है: नया ज़ूम स्तर, 1 और 21 के बीच समावेशी।
तो दिया भूमध्य रेखा ई = 40075 किमी या 21.638,8 मील दूरी ज़ूम करने के लिए डी = 20 किमी या मील दिया
ज़ूम स्तर: एल = log2 (ई/डी) +1
यह सरल विधि मैं का उपयोग किया है ई = 21.638,8 स्थापित करने के लिए याद है कि आप मील की दूरी पर उपयोग करना चाहते हैं है ...
public static byte zoomLevel (double distance){
byte zoom=1;
double E = 40075;
Log.i("Astrology", "result: "+ (Math.log(E/distance)/Math.log(2)+1));
zoom = (byte) Math.round(Math.log(E/distance)/Math.log(2)+1);
// to avoid exeptions
if (zoom>21) zoom=21;
if (zoom<1) zoom =1;
return zoom;
}
ज़ूम स्तर और दूरी से संबंधित Google मानचित्र पर कोई दस्तावेज़ है। – Mani
मैं आपकी एक और टिप्पणी में देखता हूं, आप कहते हैं कि आप इसे कुछ क्षेत्रों के आधार पर गतिशील रूप से सेट करना चाहते हैं। क्या तुम्हारे लिए थोडा और अधिक विशिष्ट होना संभव है? अगर मैं इसे सही ढंग से समझता हूं, तो आप मानचित्र के निर्देशांक प्राप्त कर सकते हैं और ज़ूम स्तर सेट करने के लिए स्विच-ब्लॉक का उपयोग कर सकते हैं। किसी बिंदु पर आपको ज़ूम स्तर और क्षेत्रों को वैसे भी मैप करना होगा। – pecka85
आप कैसे कह रहे हैं कि 4 मील दूरी 17 के ज़ूम स्तर से मेल खाती है? – Mani