如何在MapView
给定的坐标上画线?
AFAIK,在 iPhone 上是可能的。
请指教。
提前致谢。
要使用MapView ,您的Activity必须扩展MapActivity。
对于您想要绘制的每一行(或其他任何东西),您需要继承Overlay并在Overlay
'sonDraw()
方法中进行绘制。一旦你创建了你的Overlay
添加它到类似的MapView
东西mMapView.getOverlays().add(new MyOverlay());
。
在您的自定义中,您Overlay
将希望获得类似Projection p = mapView.getProjection();
. 您可以使用toPixels (GeoPoint, Point)Projection
方法将 GPS 坐标转换为屏幕坐标,然后使用普通的 Android 2D 绘图方法将其绘制到传入的Canvas 。Projection
这就是基础知识......如果您需要其他任何东西,请询问。
您可以使用此代码、示例坐标及其用法。
//...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));