开发者

How to draw line on Map View given coordinates?

开发者 https://www.devze.com 2022-12-14 07:32 出处:网络
How to draw line on 开发者_运维问答MapView given coordinates? AFAIK, on iPhone it is possible. Please advise.

How to draw line on 开发者_运维问答MapView given coordinates?

AFAIK, on iPhone it is possible.

Please advise.

Thanks in advance.


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.


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);
}

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

mGoogleMap.addPolyline(options);
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
0

精彩评论

暂无评论...
验证码 换一张
取 消