How to draw line on Map View given coordinates?

我的梦境 提交于 2019-12-29 05:33:18

问题


How to draw line on MapView given coordinates?

AFAIK, on iPhone it is possible.

Please advise.

Thanks in advance.


回答1:


To use a MapView your Activity must extend MapActivity.

For each line you want to draw (or really anything else) you need to subclass Overlay and do the drawing in the Overlay's onDraw() method. Once you've created your Overlay add it to the MapView with something like mMapView.getOverlays().add(new MyOverlay());.

Inside your custom Overlay you'll want to get a Projection with something like Projection p = mapView.getProjection();. From the Projection you can convert GPS coordinates into screen coordinates with Projection's toPixels(GeoPoint, Point) method and then just draw to the passed in Canvas using normal Android 2D drawing methods.

That's the basics... if you need anything else, just ask.




回答2:


You can use this code, sample coordinates and its usages.

    //...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));


来源:https://stackoverflow.com/questions/1937484/how-to-draw-line-on-map-view-given-coordinates

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!