GoogleMap在CameraMove上绘制标记

时间:2019-01-06 00:06:34

标签: android google-maps

我有一个Android应用程序,我想在用户根据当前LatLngBounds移动地图相机时刷新显示的标记。 问题在于CameraMove事件触发得太频繁。即使手指轻轻一动,也会触发数十个事件。 GetData方法有点贵,所以我不想经常调用它。

只有在地图停止“移动”时,才有某种适当的方法来绘制数据吗?

我的应用程序使用C#(Xamarin),但欢迎使用Java / Kotlin的所有帮助。

    public void OnMapReady(GoogleMap googleMap)
    {
        googleMap.CameraMove += GglMap_CameraMove;
    }

    private void GglMap_CameraMove(object sender, EventArgs e)
    {
        var googleMap = (GoogleMap)sender;
        var bounds = googleMap.Projection.VisibleRegion.LatLngBounds;
        var zoom = googleMap.CameraPosition.Zoom;

        if (zoom>18)
        {
            var data = GetData(bounds); 
            DrawMarkers(data);
        }
    }

还有一个CameraMoveStarted事件,该事件仅触发一次,但没有CameraMoveEnded。

0 个答案:

没有答案