ThinkGeo.com    |     Documentation    |     Premium Support

MrSid and Rotating Projection

Using MrSid files as a background, we are allowing users to rotate the map. Below is how I set up the projection and apply it to the layers. We are using a MapPrintLayer to hold this and some other layers that have been rotated.

I know the rotation works when applied to the layer and added to a LayerOverlay. It is only when applied to a MapPrintLayer and PrinterInteractiveOverlay that I seem to have the issue.

Given the error message below, can you see what I am doing wrong or what I need to apply in order to allow rotations to work in the printerInteractiveOverlay for MrSid files? All my other layers rotate using the same rotation below.

If you have a sample rotation of a Mr Sid file in a PrinterInteractiveOverlay I would like to get a copy so I can see how it compares to what I am trying.

projection = new RotationProjection(angle);
projection.Open();
projection.PivotCenter = _map.CurrentExtent.GetCenterPoint();
projection.SourceUnit = GeographyUnit.Meter;

RasterLayer rasterLayer = (RasterLayer)lyr;
projection.PivotCenter = _mapkitMap.CurrentExtent.GetCenterPoint();
rasterLayer.ImageSource.Projection = projection;
lyr.Close();
mapPrinterLayer.Layers.Add(lyr);

{“Do not support KeyColor in the specify GeoCanvas.”}

at ThinkGeo.MapSuite.Drawing.GeoCanvas.get_KeyColors()
at ThinkGeo.MapSuite.Layers.Layer.cyU=(GeoCanvas canvas, Collection1 labelsInAllLayers) at ThinkGeo.MapSuite.Layers.Layer.Draw(GeoCanvas canvas, Collection1 labelsInAllLayers)
at ThinkGeo.MapSuite.Layers.MapPrinterLayer.Oho=(SU4= pageGeoCanvas, GeographyUnit unit, RectangleShape adjustedWorldExtent, Collection1 labelsInAllLayers, Double width, Double height) at ThinkGeo.MapSuite.Layers.MapPrinterLayer.DrawCore(GeoCanvas canvas, Collection1 labelsInAllLayers)
at ThinkGeo.MapSuite.Layers.Layer.cyU=(GeoCanvas canvas, Collection1 labelsInAllLayers) at ThinkGeo.MapSuite.Layers.Layer.Draw(GeoCanvas canvas, Collection1 labelsInAllLayers)
at ThinkGeo.MapSuite.Wpf.PrinterInteractiveOverlay.DrawTileCore(GeoCanvas geoCanvas)
at ThinkGeo.MapSuite.Wpf.InteractiveOverlay.b__82_0(GeoCanvas geoCanvas)
at nFQ=.glY=.BBU=(MapArguments mapArguments, Action1 drawCoreAction) at ThinkGeo.MapSuite.Wpf.InteractiveOverlay.IzY=(LayerTile layerTile) at ThinkGeo.MapSuite.Wpf.InteractiveOverlay.DrawCore(RectangleShape targetExtent, OverlayRefreshType overlayRefreshType) at ThinkGeo.MapSuite.Wpf.PrinterInteractiveOverlay.DrawCore(RectangleShape targetExtent, OverlayRefreshType overlayRefreshType) at ThinkGeo.MapSuite.Wpf.Overlay.Draw(RectangleShape targetExtent, OverlayRefreshType refreshType) at ThinkGeo.MapSuite.Wpf.WpfMap.IlM=(Overlay overlay, RectangleShape targetExtent, OverlayRefreshType overlayRefreshType, TimeSpan bufferTime, RequestDrawingBufferTimeType bufferTimeType) at ThinkGeo.MapSuite.Wpf.WpfMap.5BU=(IEnumerable1 drawingOverlays, RectangleShape targetExtent, OverlayRefreshType refreshType, TimeSpan bufferTime, RequestDrawingBufferTimeType bufferTimeType)
at ThinkGeo.MapSuite.Wpf.WpfMap.5BU=(RectangleShape targetExtent, OverlayRefreshType refreshType)
at ThinkGeo.MapSuite.Wpf.WpfMap.DrawCore(RectangleShape targetExtent, OverlayRefreshType overlayRefreshType)
at ThinkGeo.MapSuite.Wpf.WpfMap.Refresh()

Hi Jake,

As below is a sample for you, it solved the problem and make the mrsid shows correct on map, please view it and compare your code to make sure whether it’s related with data.

9399.zip (175.0 KB)

The test data is rotated 45 degree.

Regards,

Ethan