我有一个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。