Ejemplo n.º 1
0
        private void ComputeViewPort()
        {
            var pixelToEightsRatioX = _parcelSizeLong.GetAsEightSeconds() / CurrentScale.ParcelSize;
            var pixelToEightsRatioY = _parcelSizeLat.GetAsEightSeconds() / CurrentScale.ParcelSize;

            _viewportHeight = new GeoCord(pixelToEightsRatioY * _canvas.ActualHeight / 8);
            _viewportWidth  = new GeoCord(pixelToEightsRatioX * _canvas.ActualWidth / 8);
        }
Ejemplo n.º 2
0
        public void SetupTransform(GeoCord viewportCenterLong, GeoCord viewportCenterLat, GeoCord viewportWidth, GeoCord viewportHeight)
        {
            var pixelToEightsRatioX = _parcelWidth.GetAsEightSeconds() / _parcelScreenSize;
            var pixelToEightsRatioY = _parcelHeight.GetAsEightSeconds() / _parcelScreenSize;

            var offsetFromCenterX = viewportWidth.Divide(2) + _parcelX - viewportCenterLong;
            var offsetFromCenterY = viewportHeight.Divide(2) - _parcelY + viewportCenterLat;

            var offsetX = offsetFromCenterX.GetAsEightSeconds() / pixelToEightsRatioX;
            var offsetY = offsetFromCenterY.GetAsEightSeconds() / pixelToEightsRatioY;

            var transformGroup = new System.Windows.Media.TransformGroup();

            transformGroup.Children.Add(new System.Windows.Media.ScaleTransform(1, -1));
            transformGroup.Children.Add(new System.Windows.Media.TranslateTransform(offsetX, offsetY));
            _image.RenderTransform = transformGroup;
        }