गतिशील रूप से अपडेट करने के लिए कैसे मैं एक एंड्रॉइड ऐप आधारित एक स्थान विकसित कर रहा हूं जो ओवरले आइटमों से संबंधित है।एक विशिष्ट ओवरलेइटम
पृष्ठभूमि: ऐसी कुछ संस्थाएं हैं जिन्हें मैं मानचित्र पर प्रदर्शित करना चाहता हूं। इकाइयों के समन्वय वास्तविक समय में उनके स्थान परिवर्तन के रूप में बदल जाते हैं। अद्यतन स्थान के अनुरूप, इकाइयों को मानचित्र पर अपडेट किया जाएगा। संस्थाएं बड़ी संख्या में बढ़ सकती हैं।
कार्यान्वयन मेरे पास दो ओवरले हैं। MyLocationOverlay के लिए उपयोगकर्ता स्थान और दूसरा प्रदर्शित करने के लिए, सभी आइटम्स के साथ एक itemizedOverlay उपclass जिसे मुझे मानचित्र पर प्रदर्शित करने की आवश्यकता है।
समस्या जब भी किसी इकाई का स्थान बदल जाता है, तो संबंधित ओवरलेइटम को अद्यतन करने की आवश्यकता होती है। समस्या यह है कि मुझे यकीन नहीं है कि इसे पूरा करने का सबसे अच्छा तरीका कौन सा है। मैं किसी विशेष इकाई का एक स्थान प्राप्त जैसा कि मैंने इन विकल्पों
है, मैं मानचित्र से सभी ओवरले को हटाने और ओवरले फिर से जोड़ें। ओवरलेइटम्स में से एक अब अद्यतन स्थान के साथ बनाया गया है।
List<Overlay> overlays = map.getOverlays(); overlays.removeAll(overlays); overlays.add(new MyOverlay(marker,this));
मैं प्रत्येक इकाई के लिए एक ओवरले पैदा करते हैं। मतलब मैं 500 ओवरले बनाउंगा, प्रत्येक में केवल एक ओवरले आइटम होगा। मैं ओवरले क्लास का एक उप वर्ग बनाता हूं और इकाई की पहचान करने और प्रत्येक के लिए एक बनाने के लिए अपनी खुद की गुण जोड़ता हूं। जब मैं किसी विशेष इकाई के स्थान अपडेट तक पहुंचता हूं, तो मैं फिर से चलाता हूं और विशिष्ट ओवरले आइटम प्राप्त करता हूं, इसे हटा देता हूं और अपडेट किए गए स्थान के साथ एक नया जोड़ता हूं।
मुझे नहीं पता कि प्रदर्शन के तरीके का उपयोग करने के लिए सबसे अच्छा कौन सा है।
मैं दूर करने लग रहा है सब और हर एक स्थान अद्यतन के लिए सभी ओवरले (जो अक्सर हो सकता है) हर एक संस्था की काफी एक ओवरहेड जब संस्थाओं की संख्या बन हो जाता है फिर से जोड़ने में 500 से अधिक या 1000
साथ ही, इकाइयों की एक ही संख्या के माध्यम से पुनरावृत्त बराबर ओवरहेड भी हो सकता है।
किसी भी सलाह को चुनने के लिए या इसे लागू करने के बेहतर तरीके की सराहना की जाएगी।
/एंडी
तो क्या आप सुझाव देते हैं कि एक कस्टम ओवरले क्लास बनाना और मेरी सभी संस्थाएं उस पर खींची गई हैं? एक बेहतर प्रदर्शन होगा - एक कस्टम ओवरले क्लास जैसा कि आपने सभी 500 इकाइयों या समान कस्टम ओवरले क्लास के साथ सुझाव दिया है, प्रत्येक इकाई के लिए एक (कस्टम ओवरले क्लास की 500 वस्तुएं होंगी) – andy
मेरा मानना है कि कोई निश्चित उत्तर नहीं है यह कस्टम ओवरले वर्ग के कार्यान्वयन पर निर्भर करता है। अगर मैं परफॉर्मेंस के लिए निश्चित रूप से सुनिश्चित करना चाहता हूं, तो मैं इन दो एप्रेच के लिए एक सरल परीक्षण केस लागू करूंगा और देखें कि इनमें से कौन सा सर्वश्रेष्ठ प्रदर्शन है। – Angelo