2013-03-26 5 views
6

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

मुझे पूरा मार्ग प्रदर्शित करने में कोई समस्या नहीं है, लेकिन मुझे चल रहा है जैसे ट्रैक दिखाने में मुश्किल हो रही है।

अभी तक, मुझे ऐसा करने के 2 अलग-अलग तरीके मिल गए हैं, लेकिन न ही विशेष रूप से संतोषजनक हैं।

विधि 1

PolylineOptions track = new PolylineOptions(); 
Polyline poly; 

while (moving) { 
    Latlng coord = new LatLng(lat,lng); // from LocationListener 
    track.add(coord); 
    if (poly != null) { 
     poly.remove(); 
    } 
    poly = map.addPolyline(track); 
} 

यानी पॉलीलाइन नए निर्देशांक जोड़ने और फिर इसे वापस जोड़ने से पहले इसे हटाने का निर्माण।

यह बेहद धीमी है।

विधि 2

oldcoord = new LatLng(lat,lng);; 

while (moving) { 
    PolylineOptions track = new PolylineOptions(); 
    LatLng coord = new (LatLng(lat,lng); 
    track.add(oldcoord); 
    track.add(coord); 
    map.addPolyline(track); 

    oldcoord = coord; 
} 

यानी एकल पोलीलाइंस की एक श्रृंखला साजिश।

हालांकि यह विधि 1 की तुलना में बहुत तेज़ प्रदान करता है, यह विशेष रूप से निचले ज़ूम स्तर पर काफी जंजीर दिखता है क्योंकि प्रत्येक पॉलीलाइन को चौकोर कर दिया जाता है और यह केवल कोनों को स्पर्श करता है।

क्या कोई बेहतर तरीका है और, यदि हां, तो यह क्या है?

उत्तर

8

2.0 मैप्स एपीआई का उपयोग कर एक सीधा समाधान है।

  1. जैसे LatLng अंक की एक सूची बना:: आप तीन चरणों का उपयोग कर एक अच्छा चिकनी मार्ग लाइन मिल जाएगा

    List<LatLng> routePoints; 
    
  2. सूची मार्ग अंक जोड़ें (/ किया जाना चाहिए सकता है एक पाश में):

    routePoints.add(mapPoint); 
    
  3. एक पॉलीलाइन बनाएँ और यह इस तरह के रूप LatLng अंकों की सूची फ़ीड:

    Polyline route = map.addPolyline(new PolylineOptions() 
        .width(_strokeWidth) 
        .color(_pathColor) 
        .geodesic(true) 
        .zIndex(z)); 
    route.setPoints(routePoints); 
    

इसे आज़माएं!

+0

उत्तर के लिए धन्यवाद। मैं अंततः इस के साथ आया (मेरी विधि 1)। मेरी समस्या यह थी कि जब मैंने पॉलीलाइन का निर्माण और निकालने के निर्देशांक के एक ऐरेलिस्ट के माध्यम से पुन: प्रसंस्करण किया, तो प्रसंस्करण हमेशा के लिए ले रहा था। हालांकि, जब मैंने ऑन चेंजलिस्ट पर उस प्रसंस्करण को ऑफ़लोड किया, तो यह एक आकर्षण की तरह काम करता था। –

+0

@PeteH क्या आप मुझे बता सकते हैं, विधि मार्ग में मानचित्र क्या है पॉइंट्स.एड (मैपपॉइंट); – Keshav1234

+0

एक नक्शापॉइंट बस एक व्यक्तिगत LatLng ऑब्जेक्ट है, यानी, आपके मानचित्र प्रदर्शन के लिए वांछित बिंदुओं में से एक – PeteH

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