2011-08-30 21 views
6

मैं ओएसएमड्रॉइड और ओएसएम से 16 स्तर तक डाउनलोड किए गए मानचित्र का उपयोग कर रहा हूं। मैं सोच रहा था कि ओएसएमड्रॉइड उस ज़ूम स्तर से टाइल का उपयोग कर सकता है लेकिन इसे बड़ा खींच सकता है।osmdroid - डिस्प्ले टाइल्स बड़ा

बात यह है कि उस स्तर पर टाइलों के लिए मेरे लिए पर्याप्त जानकारी है, लेकिन छोटे से खींचे जाते हैं। मैंने देखा है कि कुछ अन्य ऐप्स एक ही टाइल स्तर का उपयोग करते हैं लेकिन किसी भी तरह उन्हें बड़ा खींचने के लिए प्रबंधन करते हैं।

धन्यवाद

उत्तर

3

आप osmdroid के स्रोत कोड को संशोधित किए बिना ऐसा नहीं कर सकते। अभी, टाइल को उनके वास्तविक रिज़ॉल्यूशन पर दिखाया गया है, सिवाय इसके कि ज़ूम स्तरों के बीच दृश्य एनिमेटेड हो रहा है। यही है, जब एनीमेशन किया जाता है तो टाइल्स स्विच हो जाते हैं, और स्केल 1 फिर से सेट हो जाता है। मैंने स्केलिंग को रखने के लिए कुछ चाल की कोशिश की है जब उपयोगकर्ता उच्चतम स्तर के विस्तार से ज़ूमिंग करने का प्रयास करता है। यह दृश्यता से काम करता है, लेकिन सभी फ़ंक्शंस जो पिक्सेल से मैप समन्वय करने के लिए मैप करते हैं, साथ ही मानचित्र खींचते समय कुछ बातचीत करते हैं, तोड़ते हैं। इसलिए इसे स्रोत का एक और महत्वपूर्ण संशोधन की आवश्यकता होगी। यह करने योग्य है, लेकिन मुझे लगता है कि यह वास्तव में परेशानी के लायक नहीं है - जब तक कि आप वास्तव में परियोजना में संशोधन का योगदान नहीं करना चाहते हैं, और इसे कम हैकिश तरीके से करें।

-1

ओएसएमड्रॉइड के वर्तमान कामकाजी मॉडल के भीतर एक वर्कअराउंड एक छवि मैनिपुलेशन पैकेज जैसे इमेजमैजिक या फ़ोटोशॉप का उपयोग करना है ताकि उच्च ज़ूम स्तर पर बिटमैप टाइल्स का नया सेट तैयार किया जा सके।

आपको क्या करना है, प्रत्येक मौजूदा टाइल (256x256px) लेना, इसका आकार बदलना, आकार और चौड़ाई दोनों को दोगुना करना, और फिर छवि को 4 नए टाइल्स में काटना है। नए ज़ूम स्तर के लिए नामकरण सम्मेलन के अनुसार प्रत्येक टाइल को सहेजें। टाइल नक्शा नामकरण रूपांतरण described here, as well as an easy way of getting the 4 new names from the original name

+0

यह अनिवार्य रूप से अगले उच्च ज़ूम स्तर पर टाइल्स नकल में परिणाम होगा करना चाहिए। –

+0

एक अर्थ में, लेकिन यह अभी भी वांछित परिणाम प्राप्त करता है। – CjS

1

क्लाउडमेड के पास उच्च-रिज़ॉल्यूशन टाइल्स के लिए समर्थन है जो अब बाजार पर मौजूदा फोन पर बेहतर दिखता है। यहाँ एक नज़र:

http://developers.cloudmade.com/projects/tiles/documents

मैं ldpi और mdpi उपकरणों के लिए सामान्य टाइल्स का प्रयोग करेंगे, और hdpi और xhdpi उपकरणों

+0

ऐसा लगता है कि इस परियोजना को अब छोटे डिवेलपर्स के लिए बनाए रखा नहीं गया है: http://notes.ericjiang.com/posts/741 – elcuco

0

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

1

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

2

मैं ऑफ़लाइन टाइल्स का उपयोग कर रहा हूं और इसे 2x रिज़ॉल्यूशन पर प्रदर्शित करने के लिए किया है। महत्वपूर्ण हिस्सा 512 पिक्सेल आकार है, भले ही टाइल्स 256.

myMapView.setTileSource (new XYTileSource ("Mapnik", ResourceProxy.string.offline_mode, 13, 17, 512, ".png", "http://127.0.0.1")); 
+0

एक अलग टाइल आकार के साथ, osmdroid वास्तविक टाइल समन्वय की गणना कैसे करते हैं? – hguser

+0

यदि टाइल्स 256x256 हैं और आप टाइल्सोर्स को 512 के रूप में सेट करते हैं, तो यह केवल टाइल्स के आकार को दोगुना कर देगा। मैं वास्तव में osmdroid पर एक वेबव्यू में पत्रक डालना पसंद करते हैं। –

3

सबसे अच्छा समाधान मैं इस समस्या का पाया है (जो मैंने पहले आज अपने आप को था) कर रहे हैं, टाइल स्रोत में स्केलिंग (बदलने के लिए है मैं OpenStreetMap के अपने खुद के संस्करण) का उपयोग कर रहा:

final float scale = getBaseContext().getResources().getDisplayMetrics().density; 
final int newScale = (int) (256 * scale); 
String[] OSMSource = new String[2]; 
OSMSource[0] = "http://a.tile.openstreetmap.org/"; 
OSMSource[1] = "http://b.tile.openstreetmap.org/"; 
XYTileSource MapSource = new XYTileSource(
     "OSM", 
     null, 
     1, 
     18, 
     newScale, 
     ".png", 
     OSMSource 
); 
map.setTileSource(MapSource); 

स्क्रीन घनत्व के अनुसार पैमाने परिवर्तनीय एक अपेक्षाकृत अच्छा समाधान है। मेरे परीक्षण के दौरान कुछ छवियां थोड़ा धुंधली हो गईं, लेकिन यदि आप उस आकस्मिकता के लिए स्केलिंग को कम करते हैं तो आपको बहुत अच्छा परिणाम मिलता है।

यह मेरा समाधान बीटीडब्ल्यू नहीं है, मैंने इसे Github पर OSMDROID मुद्दों के बीच पाया। धन्यवाद stefangab95 पर जाता है।

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