在mapview上绘制一个多边形+ android
问题描述:
我想在地图视图上绘制一个多边形。这就像,我有n个GeoPoints,然后使用这些geopoints,我想绘制一个带有n个顶点的多边形。在mapview上绘制一个多边形+ android
谢谢!!
更新:
感谢freza,现在我知道如何绘制覆盖。
覆盖类下有另一个函数:public boolean onTap(GeoPoint p, MapView mapView)
。现在我想要的是当用户点击任何叠加层时,我想要改变叠加层的图像。
例如,最初我画了一个简单的绿色圆圈来显示叠加层。所以,现在当用户点击该绿色覆盖图时:我想将颜色更改为红色,或者在绿色圆圈的位置绘制新的位图。我怎样才能做到这一点?
答
这可以帮助你。 代码如下:
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();
}
看到这个[链接](http://*.com/questions/2176397/drawing-a-line-path-on-google-maps) – pankajagarwal 2011-04-07 12:30:12