2011-04-07 61 views
1

我想在地图视图上绘制一个多边形。这就像,我有n个GeoPoints,然后使用这些geopoints,我想绘制一个带有n个顶点的多边形。在mapview上绘制一个多边形+ android

谢谢!!

更新:

感谢freza,现在我知道如何绘制覆盖。

覆盖类下有另一个函数:public boolean onTap(GeoPoint p, MapView mapView)。现在我想要的是当用户点击任何叠加层时,我想要改变叠加层的图像。

例如,最初我画了一个简单的绿色圆圈来显示叠加层。所以,现在当用户点击该绿色覆盖图时:我想将颜色更改为红色,或者在绿色圆圈的位置绘制新的位图。我怎样才能做到这一点?

+1

看到这个[链接](http://stackoverflow.com/questions/2176397/drawing-a-line-path-on-google-maps) – pankajagarwal 2011-04-07 12:30:12

回答

0

这可以帮助你。 代码如下:

  private void changeMarkers(int noteIndex) { 
    for (int i = 0; i < noteOverlays.size(); i++) { 
     if (i == noteIndex || noteIndex == -1) { 
      Drawable selectedMarker = getResources().getDrawable(
        R.drawable.note_in_map); 
      int selectedMarkerWidth = selectedMarker.getIntrinsicWidth(); 
      int selectedMarkerHeight = selectedMarker.getIntrinsicHeight(); 
      selectedMarker.setBounds(-selectedMarkerWidth/2, 
        -selectedMarkerHeight, selectedMarkerWidth/2, 0);   noteOverlays.getItem(i).setMarker(selectedMarker); 
     } else { 
      Drawable unselectedMarker = getResources().getDrawable(
        R.drawable.note_in_map_notselected); 
      int nonSelectedMarkerWidth = unselectedMarker 
        .getIntrinsicWidth(); 
      int nonSelectedMarkerHeight = unselectedMarker 
        .getIntrinsicHeight(); 
      unselectedMarker 
        .setBounds(-nonSelectedMarkerWidth/2, 
          -nonSelectedMarkerHeight, 
          nonSelectedMarkerWidth/2, 0); 
      noteOverlays.getItem(i).setMarker(unselectedMarker); 
     } 
    } 
    mapView.invalidate(); 
}