【问题标题】:Draw a polygon on mapview + android在mapview + android上绘制多边形
【发布时间】:2011-04-07 12:11:32
【问题描述】:
我想在地图视图上绘制一个多边形。就像,我有 n 个地理点,然后使用这些地理点,我想绘制一个具有 n 个顶点的多边形。
谢谢!!
更新:
感谢 freza,现在我知道如何绘制叠加层了。
覆盖类下还有另一个函数:public boolean onTap(GeoPoint p, MapView mapView)。现在我想要的是当用户点击任何叠加层时,我想更改叠加层的图像。
例如,最初我绘制了一个简单的绿色圆圈来显示叠加层。所以现在当用户点击那个绿色叠加层时:我想将颜色更改为红色或在绿色圆圈的位置绘制一个新的位图。我该怎么做?
【问题讨论】:
标签:
android
google-maps
android-mapview
draw
【解决方案1】:
这可以帮助你。
代码如下:
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();
}