在谷歌地图上调用SetPoints时多边形闪烁

时间:2018-01-03 11:51:43

标签: java android google-maps google-maps-android-api-2

我有一个使用谷歌地图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的类似已解决的问题,但最近的对应似乎表明同样的问题仍然存在于多边形中。

我想知道我是做错了什么,错过了什么,或者在这里还有其他创造性的解决方案。

0 个答案:

没有答案