如何在给定坐标的MapView
上绘制线条?
据我所知,在iPhone上是可能的。
请给予建议。
提前致谢。
如何在给定坐标的MapView
上绘制线条?
据我所知,在iPhone上是可能的。
请给予建议。
提前致谢。
要使用MapView,您的Activity必须扩展MapActivity。
对于您想要绘制(或其他任何事情)的每一行,您需要子类化Overlay并在 Overlay
的 onDraw()
方法中进行绘制。创建了您的 Overlay
后,将其添加到 MapView
中,例如mMapView.getOverlays().add(new MyOverlay());
。
Projection p = mapView.getProjection();
的语句获取Projection。通过Projection
,您可以使用Projection
的toPixels(GeoPoint, Point)方法将GPS坐标转换为屏幕坐标,然后使用普通的Android 2D绘图方法绘制到传递的Canvas上。您可以使用此代码、示例坐标及其用途。
//...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));