ThinkGeo.com    |     Documentation    |     Premium Support

FileLoadException was unhandled

 I am trying to load a .jpg image like this:



            Jpeg2000RasterLayer jpgImageLayer = new Jpeg2000RasterLayer(@"C:\Users\Dave\Documents\Visual Studio 2010\PSIM\PSIM\PSIM\Samples\59and8,jpg");
            jpgImageLayer.UpperThreshold = double.MaxValue;
            jpgImageLayer.LowerThreshold = 0;

            LayerOverlay ImageOverlay = new LayerOverlay();
            ImageOverlay.Layers.Add("jpgImageLayer", jpgImageLayer);
            Map.Overlays.Add(ImageOverlay);
            Map.Refresh(); 

 but I get a FileLoadException on the last line:


Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.


 


Not sure what to do about that...


Dave



Dave,


Thanks for your post.
 
I noticed that in your path file, there is a mistake by using the “,” instead of “.”, can you have a try after correcting it?
@"C:\Users\Dave\Documents\Visual Studio 2010\PSIM\PSIM\PSIM\Samples\59and8,jpg"
 
Any more questions please feel free to let me know.
 
Thanks.
 
Yale

 Good catch.... but sadly, that didn't fix it...  same error...


Dave



Dave,


 
Thanks for your post and feedback.
Can you try to use the GdiPlusRasterLayer instead of the Jpeg2000RasterLayer? If the problem still there could you send us the jpg file?
 
Any more questions please feel free to let me know.
 
Thanks.
 
Yale

 Thank you Yale, using GdiPlusRasterLayer did resolve the error.  I do not yet see my own jpg in the map yet however.


This jpg is a screen capture from Google Earth* this morning and then cropped to a nice size. I then used a georeference tool from the open source MapWindow folks to create the world file. I set the CurrentExtent just outside of the range of the image and tried to load it like this:



Map.MapUnit = GeographyUnit.DecimalDegree;
Map.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);

GdiPlusRasterLayer jpgImageLayer = new GdiPlusRasterLayer(@"C:\Users\Dave\Documents\Visual Studio 2010\PSIM\PSIM\PSIM\Samples\algoa.jpg");
jpgImageLayer.UpperThreshold = double.MaxValue;
jpgImageLayer.LowerThreshold = 0;
LayerOverlay ImageOverlay = new LayerOverlay();
ImageOverlay.Layers.Add("jpgImageLayer", jpgImageLayer);
Map.Overlays.Add(ImageOverlay);

Map.CurrentExtent = new RectangleShape(-96, 30, -95, 29);
Map.Refresh(); 

I get nothing however... I am guessing that MapSuite wants the jpg georeferenced some other way?


Dave


 


*just for in-house testing, we aren't publishing or distributing copyright images... fyi...



David,


I found another post maybe talk about the same issue with you.


In our product, we use the OLEDB to do the SQL query against the shape file.  Following post show you how to use the OLEDB directly to SQL query against the shape file, I think the reason for this problem is that the OLEDB does not support this.
gis.thinkgeo.com/Support/Dis...fault.aspx
Any more questions please feel free to let me know.
Thanks.
James

 I have no idea what you were trying to tell me... 


Let me ask this:  if I have a satellite jpg or tiff, how do I georeference it so that it can be loaded as a geolocated background image? Do you recommend some tool for that?


 


Dave



David, 



That's a post talk about why GdiPlusRasterLayer works but other rasterlayer doesn't, however GdiPlusRasterLayer has low performance, never mind it.


We load satellite image with world file, when you don't have related world file, you can pass in the world extent which represent this image in constructor of GdiPlusRasterLayer or Jpeg2000RasterLayer or any other rasterlayer. If you don't know how to write code, please look at HowDoI sample 

Load a Geotiff image under Satellite Image category. 



Please let me know if you have more questions 

Thanks 

James



That is excellent…  can you recommend a tool for geolocating the images (ie making a world file compatible with MapSuite) 
  
 Also, is there a way to load autocad drawings into a layer? Or do they need to be converted to jpg or tiff before trying to load them into MapSuite? 
  
 Dave

David, 
  
 The worldfile is pretty simple, you can use notepad to create it by yourself, about its format you can look at 
 en.wikipedia.org/wiki/World_file 
 If you want to the image will display at map.CurrentExtent, you can set the parameters of worldfile the same as current extent. 
  
 I am afraid we don’t fully support autocad, so you need to convert it to image file, but you can look at this page which decribe all data format that mapsuite supports: 
 gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/16/aft/6206/afv/topic/Default.aspx 
  
 Thanks 
 Li Fan

Yes, the worldfile did turn out to be pretty simple, and I am able to use a nice tool to generate them.


When I load an image that has D and B values in its worldfile (because the image is not rotated to true north) is there a place in MapSuite where I can go to find the computed rotation of the image?


Dave



David, 
  
 I think MapSuite doesn’t support rotation for RasterLayer, it will ignore D and B values, you can set them to 0. 
  
 Currently, we supports the rotation only for Feature Layer now.  
  
 We have added this item to our work tracking system, hopefully we can supported it one day.  
  
 Sorry for the inconvenience now.  
  
 Thanks.  
  
 James

So.... MapSuite requires that all raster layers be aligned with true north on the Y axis?  I can rotate a FeatureLayer but the georeferenced RasterLayer underneath it can not rotate with it?  That surprises me...


Can I get an estimate on 'hopefully supporting it one day'?  That sounds like code for a pretty low priority.


Dave



David, 
  
 I am afraid I can not give you a estimate time. The reason we can rotate ShapeFeautureLayer but not for RasterLayer is that we load feature layer by our own code, so we can totally control it, however we use the thrid part assemblies to load RasterLayer that they don’t provide the functions to rotate image. 
  
 Hope the third part assemblies release new version that support rotation and we can integrate the function to our RasterLayer. 
  
 Sorry for inconvenience. 
  
 Thanks 
 James