gpt4 book ai didi

java - Android 谷歌地图 v2 : resize polygon

转载 作者:行者123 更新时间:2023-12-01 04:20:15 24 4
gpt4 key购买 nike

我想在谷歌地图上绘制可以调整大小的多边形。 onMarkerClick 已成功删除任何标记,但我无法通过将其拖动到另一个位置来更改标记位置。这是我的代码:

        PolygonOptions polygon = new PolygonOptions(); 
Polygon my_polygon ;
polygon.fillColor(Color.RED);
....
@Override
public boolean onMarkerClick(Marker arg0) {
my_polygon.remove();
arg0.remove();
polygon.getPoints().remove(arg0.getPosition()); //it's ok, marker deleted

return true;
}

@Override
public void onMarkerDrag(Marker marker)
{
polygon.getPoints().remove(marker.getPosition()); //marker still in polygon list

}
@Override
public void onMarkerDragStart(Marker marker)
{

polygon.getPoints().remove(marker.getPosition()); //marker still in polygon list


}
@Override
public void onMarkerDragEnd(Marker marker)
{
my_polygon.remove();
polygon.getPoints().remove(marker.getPosition()); //marker still in polygon list
polygon.add(marker.getPosition());
my_polygon=map.addPolygon(polygon); //created new polygon which contains previous marker position
}

那么,如何正确删除之前的标记点呢?

最佳答案

首先将所有 LatLng 点保存在 LatLng 的数组列表中。不要删除标记 onMarkerDragStart(Markermarker) 甚至将其保存到新的 LatLng 变量中。现在在 onMarkerDragEnd(Markermarker) 处,首先获取新点,然后删除保存在新 LatLng 变量中的旧点。同时,您需要从已保存的数组列表中删除相同的标记并添加此新值,然后再次绘制多边形。

例如,假设您声明了一个像这样的 latlng 数组列表 ArrayList 点 = new ArrayList();

然后在onMarkerDragEnd(Markermarker)中绘制一个多边形,如下所示

Polygon polygon = map.addPolygon(new PolygonOptions()
.addAll(points)
.strokeColor(Color.BLACK)
.strokeWidth(5)
.fillColor(0x884d4d4d));

试试这个。希望它会有所帮助。 :)

关于java - Android 谷歌地图 v2 : resize polygon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com