2013-04-26 282 views
1

在我的地图中,我有点可拖动地图以更改多边形点的位置。当标记移动时,我从一个跟踪我所有地图元素的类中获取我正在编辑的多边形,将其从地图中移除并绘制具有更新位置的新多边形。多边形不显示填充颜色

我遇到的问题是当我将多边形的一边上的点移动到另一边时,填充颜色消失,直到我移动其他点中的2点。

enter image description here

结果

enter image description here

这是什么,我做错了,或者这是API中的错误?

这里是我的一些代码在onMarkerDragEnd

String[] ary = marker.getSnippet().split("\\?"); 
     MapElement elem = mapElements.get(Long.parseLong(ary[0])); 
     ArrayList<LatLng> polyPoints = elem.getLocationArray(); 
     polyPoints.set(Integer.parseInt(ary[1]), marker.getPosition()); 

    Polygon old = elem.getPolygon(); 
    Polygon p = map.addPolygon(new PolygonOptions().fillColor(0x500011FF).strokeColor(0x50444444) 
     .strokeWidth(4).addAll(polyPoints)); 

    elem.setPolygon(p); 

    old.remove(); 

基本标记片段保存点的位置的位置数组中,然后我从阵列位置和新的位置更新的标记

+0

我真的不喜欢所有的片段解析。您可能需要使用[Android Maps Extensions](http://code.google.com/p/android-maps-extensions/)中的Marker.setData和Marker.getData。 – 2013-04-26 21:17:49

+0

同样的问题发生在没有孔的复杂但闭合的形状上 - 就好像路口检查有一些舍入误差或者在某个缩放级别放下某些点。 Play Services Lib 4.0.30(889083-30) – tomash 2014-01-28 10:42:49

回答

0

由于"Polygon vertices may now be ordered in clockwise or counterclockwise order."(固定在v5中),您似乎正在使用google-play-services v4。

在Android SDK Manager中更新google-play-services并再次导入lib项目。此外,您还应该在您的设备上安装Google Play服务APK 3.0.25或更高版本。

+0

我99.9%确定这不是问题,因为我没有启动这个项目,直到该选项可用。我也在地图上绘制多边形,按下地图并在每次点击时将新点添加到“PolygonOptions”,然后移除旧的多边形并创建一个新的多边形以显示。 – tyczj 2013-04-27 23:56:04

+0

@tyczj如果您仅查看您正在使用的Google-play-services_lib的清单以及设备上的Google Play服务的应用程序详情,那么您可以在其中添加0.01%。 “直到有了这个选项,我才开始这个项目。”什么选择? – 2013-04-28 07:07:18

+0

是的,我的设备上有'3.0.27'版本,我已经加载了最新的'google play services'。我的意思是“我没有开始这个项目,直到有了这个选项。”是以顺时针或逆时针顺序绘制多边形的选项 – tyczj 2013-04-29 13:27:12