如何在地图视图上根据坐标绘制线条?

5

如何在给定坐标的MapView上绘制线条?

据我所知,在iPhone上是可能的。

请给予建议。

提前致谢。


1
这里有一个更完整的答案回答了你的问题:https://dev59.com/dnI95IYBdhLWcg3wvgl9 - gfrigon
2个回答

21

要使用MapView,您的Activity必须扩展MapActivity

对于您想要绘制(或其他任何事情)的每一行,您需要子类化Overlay并在 Overlay onDraw()方法中进行绘制。创建了您的 Overlay 后,将其添加到 MapView 中,例如mMapView.getOverlays().add(new MyOverlay());

在自定义的Overlay中,您需要使用类似Projection p = mapView.getProjection();的语句获取Projection。通过Projection,您可以使用ProjectiontoPixels(GeoPoint, Point)方法将GPS坐标转换为屏幕坐标,然后使用普通的Android 2D绘图方法绘制到传递的Canvas上。
那就是基础知识...如果您需要其他帮助,请随时提问。

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接