2010-10-20 12 views
9

कैसे लोड करें, कृपया मुझे बताएं कि क्या एंड्रॉइड में Google मानचित्र में kml फ़ाइल लोड करने का कोई तरीका है या नहीं।एंड्रॉइड: KML

धन्यवाद

उत्तर

8

एक कोड नमूना यहाँ कि गूगल से kml डेटा हो जाता है और नक्शे पर यह ड्रॉ प्राप्त करें: उस के लिए

How to draw a path on a map using kml file?

+0

@ माथीस ... बहुत बहुत धन्यवाद! लेकिन अगर मैं आपसे पूछ सकता हूं। फोन एसडी कार्ड से किमीएल तक पहुंचने का कोई तरीका है। मैं जिस kml का उपयोग कर रहा हूं वह कभी नहीं बदलेगा। इसलिए हर बार ऐप को चालू करने पर सर्वर से इसे प्राप्त करने का कोई बिंदु नहीं है। धन्यवाद फिर से –

+0

सुनिश्चित करें, आप इसे एक टेक्स्ट फ़ाइल में डाल सकते हैं और इसे नियमित java.io.file विधियों –

+0

के माध्यम से पढ़ सकते हैं, तो आप कहने का मतलब है .. मुझे kml सामग्री को एक टेक्स्ट फ़ाइल में कॉपी करने और आईओ विधि का उपयोग करके इसे पार्स करने की आवश्यकता है .. (स्ट्रिंग टोकननाइज़र और उस तरह की चीजें)? क्या फोन में किमीएल स्टोर करना संभव नहीं है और इसे पार्स करने के लिए सैक्स पार्सर का उपयोग करना संभव नहीं है? –

0

मैं एक नक्शा (एंड्रॉयड 1.5) पर GPX फाइलें थे, लेकिन वहाँ KML या GPX लोड करने के लिए कुछ भी नहीं था। अगर यह एंड्रॉइड के नए संस्करणों में नहीं जोड़ा गया था, तो मुझे लगता है कि आपको फ़ाइल को स्वयं ही पढ़ना होगा। Thats मैंने 10 महीने पहले किया था ...

3

कई महीने पहले मैं एक समान कार्य की तलाश में था, लेकिन एसडीकार्ड से फ़ाइल लोड करने का एक तरीका नहीं मिला - या यहां तक ​​कि एक सामग्री प्रदाता का उपयोग भी। मैंने तब से नहीं देखा है।

हालांकि एक विधि मैं देखा है, जो उपयोगी साबित हुआ के रूप में मैं पहले से ही एक वेबसर्वर

getting maps to accept a dynamically generated KML file?

के साथ संवाद स्थापित किया गया था यह मैं सर्वर से मेरे ऐप से एम एल प्रेषण करने के लिए अनुमति दी (संवाद स्थापित करने के स्थान पर पहले से ही था

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("geo:0,0?q=http://website.com/kml_gen.php?id=1kj312")); 
startActivity(myIntent); 

सर्वर एक लौटे:), सर्वर संग्रहीत एम एल, एक यादृच्छिक स्ट्रिंग सौंपा है, और अनुप्रयोग के लिए यह लौटे, एप्लिकेशन तो शैली में सर्वर के लिए एक लिंक पारित कर दिया उपयोग करने के लिए मानचित्र ऐप के लिए केएमएल सूची।

नीचे टिप्पणी के बाद एक अद्यतन:

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("geo:0,0?q=http://code.google.com/apis/kml/documentation/KML_Samples.kml")); 
startActivity(myIntent); 

ऊपर कोड चलाने की कोशिश करें - आप जब आप इसे चलाते देखेंगे, गूगल मानचित्र एप्लिकेशन खोलने पर, और यह kml फ़ाइल का अनुरोध करेंगे, इस मामले में Google से नमूने फ़ाइल। यह एक ओवरले वाला नक्शा है, लेकिन अब यह Google मानचित्र एप्लिकेशन है और अब आपके एप्लिकेशन के अंदर नहीं चल रहा है।

इस समाधान के लिए आपको अपनी केएमएल फ़ाइल को कहीं भी वेब सर्वर पर स्टोर करने की आवश्यकता होगी - इसमें थोड़ी सी समस्या है कि उपयोगकर्ता को डेटा कनेक्शन की आवश्यकता है (जिसे मानचित्र को वैसे भी चाहिए - लेकिन यदि kml फ़ाइल बड़ी है और कनेक्शन में देरी हो सकती है शायद देरी हो)।

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

अन्य समाधान, जो मैंने उपयोग किया है, ऊपर पोस्ट किया गया है - यदि आपके पास फोन पर स्थिर डेटा है (मैं डेटा के साथ डीबी के साथ जाऊंगा), आइटम को ओवरले ड्राइंग बनाएं, और साथ ही सर्वर से गतिशील परिणाम का अनुरोध करें, कस्टम ओवरले में जोड़ें। इस विकल्प का अर्थ यह होगा कि आपको किसी भी अतिरिक्त फ़ंक्शन को कोड करना होगा - यानी किसी स्थान के लिए मानचित्र खोजना, उपग्रह दृश्य ..... ऑपरेशन को एक अलग थ्रेड में निष्पादित करना सुनिश्चित करें, यूआई थ्रेड नहीं, खासकर जब इमारत बड़े ओवरले या आपको फोर्स क्लोज/प्रतीक्षा संवाद प्राप्त होने की संभावना है।

+0

@Scoobler ... धन्यवाद। तो मैं इस kml फ़ाइल को Google मानचित्र पर कैसे रखूं? –

+0

@raqz आप वास्तव में क्या मतलब है?क्या आपके पास एक kml फ़ाइल है जिसे आप मानचित्र पर ओवरले करना चाहते हैं - या आपके पास समन्वय का एक सेट है और आप उन्हें मानचित्र पर दिखाने का एक तरीका ढूंढ रहे हैं यानी आप गतिशील रूप से एक kml फ़ाइल बना रहे हैं? – Scoobler

+0

@Scoobler ... मेरे पास एक kml फ़ाइल है जिसका डेटा स्थिर है। मुझे नक्शा पर kml में उन ज्यामिति को साजिश करने की ज़रूरत है; Google मानचित्र पर ओवरले। इसके अलावा, मेरे पास एक और kml फ़ाइल है जो सर्वर पर गतिशील रूप से जेनरेट की गई है और मुझे फोन पर इसे प्रदर्शित करना होगा। तो संरचना, पहला Google मानचित्र, अगली स्थिर kml फ़ाइल होगी और अंततः इन दोनों के शीर्ष पर गतिशील रूप से जेनरेट की गई kml होगी। क्या करने का कोई तरीका है। वास्तव में आपकी मदद की सराहना करते हैं ... धन्यवाद –

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