2009-12-20 4 views
5

निर्देशांक दिए गए MapView पर रेखा कैसे आकर्षित करें?मैप व्यू पर दिए गए निर्देशांक पर रेखा कैसे आकर्षित करें?

AFAIK, आईफोन पर यह संभव है।

कृपया सलाह दें।

अग्रिम धन्यवाद।

+1

यहाँ अपने प्रश्न का एक और अधिक पूरा जवाब है: http://stackoverflow.com/questions/2176397/drawing-a-line-path-on-google-maps – gfrigon

उत्तर

21

MapView का उपयोग करने के लिए आपके Activity को MapActivity का विस्तार करना होगा।

प्रत्येक पंक्ति आप आकर्षित करने के लिए (या वास्तव में कुछ और) आप Overlay उपवर्ग और Overlay के onDraw() विधि में ड्राइंग क्या करने की जरूरत चाहते हैं। एक बार जब आप अपना Overlay बनाते हैं तो इसे MapView पर mMapView.getOverlays().add(new MyOverlay()); जैसे कुछ जोड़ें।

अपने कस्टम Overlay के अंदर आप Projection p = mapView.getProjection(); जैसे Projection प्राप्त करना चाहते हैं। Projection से आप Projection की toPixels(GeoPoint, Point) विधि के साथ स्क्रीन निर्देशांक में जीपीएस निर्देशांक को परिवर्तित कर सकते हैं और फिर सामान्य एंड्रॉइड 2 डी ड्राइंग विधियों का उपयोग करके Canvas में पारित होने के लिए आकर्षित करें।

यह मूल बातें है ... यदि आपको कुछ और चाहिए तो बस पूछें।

+0

आप किसी भी नमूना कोड है संपर्क ? – Hunt

0

आप इस कोड, नमूना निर्देशांक और इसके उपयोग का उपयोग कर सकते हैं।

//...setting map and starting 

    ArrayList<LatLng> list = new ArrayList<>(); 
    list.add(new LatLng(41.020244, 29.045663)); 
    list.add(new LatLng(41.019904, 29.045448)); 
    list.add(new LatLng(41.019451, 29.044397)); 
    list.add(new LatLng(41.019710, 29.043474)); 


    PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true); 
    for (int z = 0; z < list.size(); z++) { 
     LatLng point = list.get(z); 
     options.add(point); 
    } 
    mGoogleMap.addPolyline(options); 

    CameraPosition cameraPosition; 
    cameraPosition = new CameraPosition.Builder().target(new LatLng(41.020811, 29.046113)).zoom(15).build(); 

    mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));