java - Android 谷歌地图 v2 : resize polygon

标签 java android google-maps

我想在谷歌地图上绘制可以调整大小的多边形。 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/

相关文章:

java - Systemdesign : Webserver, API 和数据库

java - 在 ListView 中滚动时重复项目

java - 从 Google Map 获取结果并将数据传输回之前的 fragment

java - Maven 正在调用哪个类?

java - 从java中的单词中删除复数后缀

android - 适用于 Android 应用程序设计的 PSD 文件尺寸和分辨率

java - 如何在android studio中导入具有库依赖项的eclipse android项目?

android - 谷歌 API 版本 v1 与 v2

php - 我应该使用 explode 、拆分和/或修剪吗?如何?

java - 如何在 JSP scriptlet 中使用 Java 类?错误说该类无法解析为类型