2010-09-14 8 views
22

में मानचित्र मार्कर के ऊपर पॉपअप दिखाएं मैं इस तरह की मूल बात करने का कोई आसान तरीका नहीं हूं ... मैं एक मानचित्र मार्कर पर उपयोगकर्ता क्लिक के बाद पॉपअप/बालन (एक लीनियरलाउट) दिखाना चाहता हूं (Google मानचित्र ऐप में जो कुछ है उससे खुश है)। जब उपयोगकर्ता मानचित्र को स्क्रॉल करता है, तो उसे नक्शे के साथ ले जाना चाहिए। इसे करने का बेहतरीन तरीका क्या है?MapView

एक विचार है कि मेरी गतिविधि के रूट लेआउट में लिनियरलाउट होना और आवश्यकता होने पर इसे दिखाएं। लेकिन इसे मानचित्र के साथ कैसे स्थानांतरित करना है?

ऐसा करने का एक और तरीका ओवरले बनाने के लिए हो सकता है जो LinearLayout को ड्रॉ में खींचता है और लेआउट टच इवेंट देता है। क्या यह संभव है?

उत्तर

45

तरह से मैंने किया है:

View popUp = getLayoutInflater().inflate(R.layout.map_popup, map, false); 

उपयोग:

ItemizedOverlay उपवर्गीकरण द्वारा, लेआउट से बढ़ा-चढ़ाकर द्वारा http://developer.android.com/guide/tutorials/views/hello-mapview.html

में वर्णित के रूप में एक पॉपअप दृश्य बनाएं आवश्यक GeoPoints पर मार्कर रखो MapView.LayoutParams आइटम्सकृत ओवरले < ओवरलेइटम> :: ऑनटैप विधि में जियोपॉइंट के संबंध में पॉपअप को स्थिति में रखने के लिए। उपयोगकर्ता मानचित्र को स्क्रॉल करते समय पॉपअप स्वचालित रूप से स्क्रॉल करेगा (बिना किसी अतिरिक्त कोड के)। मूल रूप से पॉपअप एक जियोपॉइंट से बंधे होते हैं, यदि उपयोगकर्ता ज़ूम करता है, तो पॉपअप की स्थिति स्वचालित रूप से समायोजित हो जाती है।

MapView map = (MapView) findViewById(R.id.mapview); 
MapView.LayoutParams mapParams = new MapView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
         ViewGroup.LayoutParams.WRAP_CONTENT, 
         <geopoint>, 
         <x offset if required>, 
         <y offset like pinHeight>, 
         MapView.LayoutParams.BOTTOM_CENTER); 
map.addView(popUp, mapParams); 
+0

कुछ भी नहीं होता जब मैं पॉपअप दृश्य जोड़ता हूं। यह प्रकट नहीं होता है? क्या आपको इसका सामना करना पड़ा है? –

+0

इसे समझ लिया! बच्चों को याद रखें, हमेशा अपने पॉपअप-व्यू के शीर्ष दृश्य समूह के अंदर एक और दृश्य डालें! क्योंकि उस व्यूग्रुप (जिस रूट को आपको अंदर सामग्री डालने की आवश्यकता है) को नक्शे पैराम से लेआउटपरैम मिलेंगे। शायद यह टिप्पणी किसी दिन किसी की मदद करेगी। –

+0

@OneManMobile शायद यह टिप्पणी मेरी मदद करेगी अगर मैं इसे समझूं। हो सकता है कि आप मेरी [समस्या] (http://stackoverflow.com/questions/13271458/add-legenda-to-osmdroid-mapview-with-pop-up) देख सकें और मुझे बताएं कि शीर्ष दृश्य समूह के अंदर वास्तव में एक और दृश्य क्या है आपका पॉपअप-व्यू होगा? – birgit

12

यहाँ "लापता विजेट" है ... माउस के बिना

+0

कोई आदर्श समाधान नहीं है (जिसका मैं उपयोग कर रहा हूं) रूट के अंदर पॉपअप को मानचित्र के ऊपर रिलेवेटिवआउट करना है और जब उपयोगकर्ता मानचित्र को स्क्रॉल करता है तो उसकी स्थिति बदलता है। यह आदर्श नहीं है, क्योंकि पॉपअप मानचित्र के समान गति से आगे नहीं बढ़ रहा है - जब मैं मानचित्र को स्थानांतरित करता हूं, तो यह मानचित्र के पीछे थोड़ा सा है। जब मेरे पास समय होता है तो मैं कस्टम ओवरले में पॉपअप लेआउट मैन्युअल रूप से खींचने का प्रयास करूंगा। – fhucho

+0

क्या किरण का समाधान आप उपयोग कर रहे हैं? – OneWorld

+0

आपका समाधान वास्तव में बस एक काम की तरह लगता है। मैंने पहले मार्कर के ऊपर एक माध्यमिक मार्कर बनाने का भी सोचा। लेकिन जितना अधिक मैं इसके बारे में सोचता हूं, मैं मानता हूं कि ऐसा करने के लिए वास्तव में अच्छा नहीं है। वैसे, हम यहां एक ही मुद्दे के बारे में बात कर रहे हैं: http://stackoverflow.com/questions/3880623/how-to-show-a-balloon-above-a-marker-in-a-mapactivity-is-here -an-api-to-do-that हम अपने प्रश्नों को कुछ समय में मर्ज कर सकते हैं – OneWorld

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