如何在MapView
给定坐标上画线?
AFAIK,在iPhone上是可能的。
请指教。
提前致谢。
答案 0 :(得分:21)
要使用MapView,您的Activity必须延长MapActivity。
对于您想要绘制的每一行(或其他任何内容),您需要继承Overlay并使用Overlay
的{{1}}方法进行绘制。创建onDraw()
后,Overlay
将MapView
添加到mMapView.getOverlays().add(new MyOverlay());
。
在您的自定义Overlay
中,您需要获得Projection p = mapView.getProjection();
之类的内容Projection
。从Projection
,您可以使用{{1}}的{{3}}方法将GPS坐标转换为屏幕坐标,然后使用常规Android 2D绘图方法绘制到传入的Projection。< / p>
这是基础......如果你还需要其他东西,请问。
答案 1 :(得分: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);
}
mGoogleMap.addPolyline(options);
CameraPosition cameraPosition;
cameraPosition = new CameraPosition.Builder().target(new LatLng(41.020811, 29.046113)).zoom(15).build();
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));