2013-08-16 7 views
7

एंड्रॉयड गूगल मानचित्र v2 में पॉलीलाइन से अधिक Arrowheads दिखाने के लिए कैसेपॉलीलाइन से अधिक Android में तीर मार्क गूगल मार्ग नक्शा

मैं लिंक की जोड़ी के माध्यम से चले गए हैं, उनमें से ज्यादातर जे एस https://google-developers.appspot.com/maps/documentation/javascript/examples/overlay-symbol-arrow के लिए लिंक देता है, लेकिन मैं Android में जे एस की जरूरत नहीं है और मैं Android

में उन लोगों के कोड का उपयोग नहीं कर सकते

कुछ MapActivity उपयोग कर रहे हैं मैं नक्शा गतिविधि भी https://developers.google.com/maps/documentation/android/v1/hello-mapview creat करने के लिए एक ट्यूटोरियल का पालन किया है, लेकिन यह काम मैं mapactivity उत्पन्न नहीं कर सकते फ्लॉप और इस तरह मैं locationoverlays उपयोग नहीं कर सका

मुझे कुछ पोस्ट भी टिप्पणी मिली हैं के रूप में यह v3 में उपलब्ध है, लेकिन अब के लिए मेरी जरूरत वी 2 में है

इस सवाल कई बार बहुत कुछ कहा गया है यहाँ मुझे पता है, लेकिन अभी भी मैं किसी भी उचित जवाब

मैं कैसे एक तीर से अधिक दिखा सकते हैं नहीं मिल सका उस दिशा को दिखाने के लिए पॉलीलाइन जहां मुझे

कोई उदाहरण या ट्यूटोरियल बहुत उपयोगी होगा।

धन्यवाद

उत्तर

3

Google Maps API v2 Demo में एक MarkerDemoActivity वर्ग है जिसमें आप देख सकते हैं कि एक कस्टम छवि एक GoogleMap पर सेट किया जाता है। आपको एक मार्कर इस्तेमाल कर सकते हैं इस तरह तीर को दिखाने के लिए:

// First you need rotate the bitmap of the arrowhead somewhere in your code 
Matrix matrix = new Matrix(); 
matrix.postRotate(rotationDegrees); 
// Create the rotated arrowhead bitmap 
Bitmap arrowheadBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, 
         width, height, matrix, true); 
// Now we are gonna to add a marker 
mArrowhead = mMap.addMarker(new MarkerOptions() 
.position(POSITION) 
.icon(arrowheadBitmap)); 

कुछ स्पष्टीकरण: आप एक मार्ग ड्राइंग कर रहे हैं, या अगर आप बस दो अंक, आकर्षित करने के लिए प्राप्त करने के लिए मिल गया rotationDegrees आप उन्हें प्राप्त कर सकते हैं

rotationDegrees = Math.toDegrees(Math.atan2(originLat-destinyLat, originLon-destinyLon)); 

क्लासिक रोटेशन खेल एल्गोरिथ्म: ऐसा करने से डी

आप तीर छवि ऊपर की ओर रहे इस बात का ध्यान रखें। ध्यान दें कि यदि आप तीरहेड दिखाने के लिए किसी छवि का उपयोग नहीं करना चाहते हैं और इसके बजाय, आप केवल पॉलीलाइनों का उपयोग करना चाहते हैं, तो आप अंतिम लैट्लिंग बिंदु (जहां आप तीरहेड प्रदर्शित करने जा रहे हैं) ले कर इसे प्राप्त कर सकते हैं और translation एल्गोरिदम 45º तक तीरहेड बनाने वाली दो पंक्तियों को आकर्षित करने के लिए।

+1

यह लगभग पूरी तरह से काम करता है। समस्या यह है कि बिटमैप का नीचे आपके द्वारा निर्दिष्ट स्थिति पर शुरू होता है, इसलिए तीर रेखा से थोड़ा ऊपर दिखाई देता है। ऐसा लगता है कि यह लगभग <____ के बजाय <--- है। कोई समाधान? –

+1

जब आप मार्कर जोड़ते हैं तो आप विस्थापन को चिह्नित कर सकते हैं। marker.setAnchor (0.5 एफ, 0 एफ); बस चर के साथ खेलते हैं – Alpha

2

हाल ही में, Google ने Google मानचित्र एंड्रॉइड एपीआई v2 में पॉलीलाइनों के लिए इस सुविधा को लागू किया।

उन्होंने कस्टम बिटमैप के साथ पॉलिलाइन की शुरुआत और अंत कैप्स को अनुकूलित करने की क्षमता को जोड़ा। इसका उपयोग करके, आप अपने पॉलीलाइनों में तीरहेड जोड़ सकेंगे।

Shapes Guide में लाइन कैप्स के बारे में जानकारी देखें। Polylines और Polygons ट्यूटोरियल में example देखें।

आप यहां इसी ब्लॉग पोस्ट पढ़ सकते हैं:

https://maps-apis.googleblog.com/2017/02/styling-and-custom-data-for-polylines.html

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