我有一个使用谷歌地图sdk(11.6.2)的Android应用程序。我在地图上绘制一个多边形并给定用户的移动,多边形的形状会发生变化。我通过调用setPoints
而不是重绘多边形来改变形状,但它的填充颜色仍然是闪烁的。即使应用相同的精确点(常数ArrayList<LatLng>
),填充颜色仍然会闪烁。
以下代码演示了此案例。该代码显示了谷歌地图标记拖动侦听器。当用户选择某个标记时会调用onMarkerStart
- 此时我保存了LatLngs
的某个列表。用户在拾取标记后移动标记时会调用onMarkerDrag()
。为简化起见,使用相同的位置数组调用所有setPoints
。
ArrayList<LatLng> points;
private GoogleMap.OnMarkerDragListener mMarkerDragListener = new GoogleMap.OnMarkerDragListener() {
// marker is picked up
@Override
public void onMarkerDragStart(Marker marker) {
points = getPolygonPoints();
mPolygon.setPoints(points);
}
// marker is being dragged around
@Override
public void onMarkerDrag(Marker marker) {
mPolygon.setPoints(points);
}
// marker is dropped
@Override
public void onMarkerDragEnd(Marker marker) {
}
};
即使使用这种简化的代码,当标记移动时,多边形填充也会大量闪烁。
进行一些研究我发现了关于圈here的类似已解决的问题,但最近的对应似乎表明同样的问题仍然存在于多边形中。
我想知道我是做错了什么,错过了什么,或者在这里还有其他创造性的解决方案。