【问题标题】: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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多