private void DoZoomMap(MapPoint rightHandCoordinate, MapPoint leftHandCoordinate) { var centerX = (rightHandCoordinate.X + leftHandCoordinate.X) / 2; var centerY = (rightHandCoordinate.Y + leftHandCoordinate.Y) / 2; var zoomCenter = new MapPoint(centerX, centerY, _map.SpatialReference); var currentDistance = rightHandCoordinate.DistanceFrom(leftHandCoordinate); var zoomFactor = (currentDistance / _startDistance); var targetResolution = _startMapResolution / Math.Pow(zoomFactor, 2); _map.ZoomToResolution(targetResolution, zoomCenter); }
protected override void StartZoom(Vector3D rightHandPoint, Vector3D leftHandPoint) { IsZooming = true; _startMapResolution = _map.Resolution; _startRightHandCoordinate = rightHandPoint.ToEsriWebMercatorMapPoint(_map); _startLeftHandCoordinate = leftHandPoint.ToEsriWebMercatorMapPoint(_map); _startDistance = _startRightHandCoordinate.DistanceFrom(_startLeftHandCoordinate); if (ZoomStarted != null) { ZoomStarted(); } }
protected override void StartZoom(SkeletonPoint rightHandPoint, SkeletonPoint leftHandPoint) { IsZooming = true; _startMapResolution = _map.Resolution; _startRightHandCoordinate = rightHandPoint.ToEsriWebMercatorMapPoint(_map); _startLeftHandCoordinate = leftHandPoint.ToEsriWebMercatorMapPoint(_map); _startDistance = _startRightHandCoordinate.DistanceFrom(_startLeftHandCoordinate); if (KinectZoomStarted!= null) { KinectZoomStarted(); } }