private void RegionMoved(MapRegionMoveEventArgs e) { var map = Control as MapView; float zoom = e.Zoom > 0 ? (float)e.Zoom : map.Camera.Zoom; CameraPosition camera = CameraPosition.FromCamera(e.Latitude, e.Longitude, zoom); map.Animate(camera); }
private void RegionMoved(object sender, MapRegionMoveEventArgs e) { var map = Control; if (Math.Abs(map.Camera.Target.Latitude - e.Latitude) < 0.0001 && Math.Abs(map.Camera.Target.Longitude - e.Longitude) < 0.0001 && Math.Abs(map.Camera.Zoom - e.Zoom) < 0.01) { var position = new CLLocationCoordinate2D(e.Latitude, e.Longitude); Map_CoordinateTapped(this, new GMSCoordEventArgs(position)); Map_CameraPositionIdle(this, new GMSCameraEventArgs(map.Camera)); } else { var camera = CameraPosition.FromCamera(e.Latitude, e.Longitude, e.Zoom); map.Animate(camera); } }