2009-12-20 68 views
5

如何在給定座標的MapView上畫線?如何在地圖視圖上給出座標線?

AFAIK,在iPhone上是可能的。

請指教。

在此先感謝。

+1

有一個更完整的回答你的問題在這裏: http://stackoverflow.com/questions/2176397/drawing-a-line-path-on-google-maps – gfrigon 2012-05-31 22:42:20

回答

21

要使用MapView您的Activity必須延伸MapActivity

對於要繪製(或真別的),你需要繼承Overlay做在OverlayonDraw()方法繪製每一行。創建完Overlay之後,請將其添加到MapView,其內容類似mMapView.getOverlays().add(new MyOverlay());

在你的自定義Overlay裏面,你會想得到一個ProjectionProjection p = mapView.getProjection();。從Projection您可以使用ProjectiontoPixels(GeoPoint, Point)方法將GPS座標轉換爲屏幕座標,然後使用正常的Android 2D繪圖方法將其繪製到Canvas中。

這是基礎知識......如果您需要其他任何東西,只需詢問。

+0

您有任何示例代碼鏈接? – Hunt 2012-12-05 18:22:51

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)); 
相關問題