ThinkGeo.com    |     Documentation    |     Premium Support

GdiPlusRasterLayer projection

 I have a georeferenced image loaded into a GdiPlusRasterLayer... it looks squished vertically or stretched horizontaly. This is no doubt because I am using MapUnit DecimalDegree and I am having a projection distortion.


How can I apply a different projection to my raster layer to square it up?


Dave



David,


Thanks for your post and question.


I am sorry to say that up to now, we do not support the projection for RasterLayers. See more details in following post:

gis.thinkgeo.com/Support/Dis...fault.aspx


Any more questions please feel free to let me know.


Thanks.


James



 That is very disappointing... and surprising...


Am I the only one who has a customer that wants to show images (plant layouts drawn in AutoCad and converted to raster) in positions other than north up? They want to display these plants in what amounts to 'main gate down', and since the main gate seldom points true north, the image and the map control's grid sit skewed from each other. The upper left pixel is the only point the grid and the image have in common (if my reasoning is correct).


If I can't rotate the image to fit the north-up assumption of the map control grid, can I rotate the grid to match the raster's rotation?


Dave



David,


Thanks for your post and questions.
 
I am sorry again to say that the projection is not supported yet for RasterLayer for now, while it is already in our investigation list, we will try to do more investigations against it to see if we can get it supported in future.
Meanwhile, I am not sure how your grid system is created, are you using the GraticuleAdornmentLayer? If yes, then please take a look at the following sample showing how to set projection to it, hope it helps:
wiki.thinkgeo.com/wiki/File:...ection.jpg
 
Any more questions or concerns please do not hesitate to let me know.
 
Thanks.
 
Yale

 No, not using a Gaticule Layer... just regular InMemoryFeatureLayers.


Let me ask my question another way...


Let's say I load a raster and worldfile that is north up (ie rotation values in worldfile are 0). Let's also say I write a MouseMove event handler that takes the mouse location and shows the current Lat/Long. In that case, as I move the pointer around to various points on the raster, the results of the MouseMove handler show the true Lat/Long of features on the raster. I understand that the raster layer really has nothing to do with this (tho the world file that came with it certainly did)


Now let's say that my raster is not north up (ie rotation values not 0). North actually points off the right side of the screen. In this case, the Lat/Long is only correct for one pixel... the upper-left pixel. As I move the pointer around now, the reported Lat/Long is totally incorrect. As I move to the right, the location shows a decreasing Long instead of an increasing Lat.


I understand why. The calculation that the Map class is using to convert pixel to map coordinate is doing a simple pixel.x * pixel_width calculation with the pixel width from the world file. It is ignoring the y component of pixel width (rotation value). It is the same case for movement in the y direction.


My customer is hading me rasters that are rotated off true north. When I read them in, I really need for the Map control to pay attention to the rotation values so that when it converts pixels to coordinates it stays 'with' the raster.


I understand the raster is just a dumb image in the background. I just need to know how to tell the Map control to run its 'internal grid' in something other than a rigid up/down left/right orientation. 


Thank you for your time,

Dave



David,


Thanks for your post and information.
 
I hope I understood correctly. What we are going to achieve is that we want to get the world location within a rotated raster image instead of the non-rotated map control as reference. Do you think we can achieve its calculation by using the RotationProjection? We created a RotationProjection classes based on the rotation angle, and then we rotated the world location in the map control to external projection which should be located in the rotated raster.
 
Any more ideas or discussions would be appreciated.
 
Thanks.
 
Yale