5

如何在MapView给定的坐标上画线?

AFAIK,在 iPhone 上是可能的。

请指教。

提前致谢。

4

2 回答 2

21

要使用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

这就是基础知识......如果您需要其他任何东西,请询问。

于 2009-12-21T11:46:01.767 回答
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));
于 2015-12-14T12:09:06.147 回答