ThinkGeo.com    |     Documentation    |     Premium Support

Show TIFF image in silverlight thinkgeo map

How to show a TIFF image through silverlight thinkgeo map?


My purpose is to show my satellite image in thinkgeo map ,image is in TIFF format.


Thanks in advance. Please reply ASAP.




Hello Jelesh J,


Thanks for your post, you can use GeoTiffRasterLayer to open a Tiff file and show it, but in Sliverlight edition, it has a little special, you can't use it in the client side because client side use it's own core system are not totally as same as Service edition, so we need let it work at ServerSide and call it in Client side. Please check the code below:


Create it in server side:

 



                GeoTiffRasterLayer geoTiffRasterLayer = new GeoTiffRasterLayer(@"filepath");
                ServerLayerOverlay tiffOverlay = new ServerLayerOverlay("ServerSideGeoTiff");

                tiffOverlay.Layers.Add(geoTiffRasterLayer);
                SilverlightMapConnector1.ServerLayerOverlays.Add(tiffOverlay);

Call it in Client side:



ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("ServerSideGeoTiff", "SilverlightMapConnector1");
            serverLayerOverlay.IsStretchEffectDisabled = true;
            serverLayerOverlay.TileType = TileType.SingleTile;
            Map1.Overlays.Add(serverLayerOverlay);
I hope this can help.


Regards,


Gary



 Hello Gary


   Thanks for your reply.


This code compiled succeessfully but when i debug the application its showing just the map only.


TIFF image is not loading.


My TIFF file contain almost 800MB size. Is their any file size limits for TIFF.


Thanks in advance



Hello Jelesh J,


No, it's not the file size problem, the code above is just some refer, actually, you need set some properties which your tiff file need, I don't know exactly your requirements so I didn't set any.


Below is the setting for regular tiff file, please have a look.



            GeoTiffRasterLayer worldImageLayer = new GeoTiffRasterLayer(@"..\..\SampleData\Data\world.tif");
            worldImageLayer.UpperThreshold = double.MaxValue;
            worldImageLayer.LowerThreshold = 0;
            worldImageLayer.IsGrayscale = false;

Regards,


Gary



 Hello Gary,


     Evenafter applying all the settings which you listed above TIFF files are not displaying in the map.


when i tried this TIFF file with another map applications like ESRI, this file working perfectly.


Is their any other option to solve this issue.


Best Regards


   Jelesh J Nelson



Hello Jelesh, 
  
 Yes, I have tested this in SL version, I can recreate your problem, I think it’s some bug here. 
  
 We will fix this and let you know the result asap. 
  
 Regards, 
  
 Gary

Hello Jelesh J,


I think maybe I found the reason now, the code is no problem, possibly you don't have the extension dlls we need in the right place.


Please check your windows\System32 or windows\SysWOW64 folder, there should have Map Suite 5.5 folder, and the MapSuiteRasterTiffX86.dll & MapSuiteRasterTiffX64.dll should be there.


Could you please have another try?


Also I post all my test code here that you can refer.


Server Side:



                GeoTiffRasterLayer geoTiffRasterLayer = new GeoTiffRasterLayer(@"C:\Users\guoyuchen\Desktop\a_CopyRaster1\a_CopyRaster1.tif");
                geoTiffRasterLayer.UpperThreshold = double.MaxValue;
                geoTiffRasterLayer.LowerThreshold = 0;
                geoTiffRasterLayer.LibraryType = GeoTiffLibraryType.UnmanagedLibTiff;
                geoTiffRasterLayer.IsGrayscale = false;
                ServerLayerOverlay tiffOverlay = new ServerLayerOverlay("ServerSideGeoTiff");
                tiffOverlay.Layers.Add(geoTiffRasterLayer);
                SilverlightMapConnector1.ServerLayerOverlays.Add(tiffOverlay);

Client Side:



    Map1.MapUnit = GeographyUnit.DecimalDegree;
            ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("ServerSideGeoTiff", "SilverlightMapConnector1");
            serverLayerOverlay.IsStretchEffectDisabled = true;
            serverLayerOverlay.TileType = TileType.SingleTile;
            Map1.Overlays.Add(serverLayerOverlay);

            Map1.CurrentExtent = new RectangleShape(37.3340493664145,24.4433380281553,37.5881082043052,24.2620636140928);

Regards,


Gary


 



even though it has nothing to do with the tiff size,  you can still install a tiff viewer vb.net. it makes you easy to display image and load tiff images.  here are some tutorial and codes.

Hi Dfdsf, 
  
 Welcome to MapSuite World and thanks for your sharing. 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer 
  


Hi, dfdsf.

I have noticed that you mentioned vb.net, but I am working on c#.net. And I am testing about another Tiff viewer building projects these days. I am learning about how to create Tiff viewers with the help of some manual tools which can be customized by users according to our own favors to help view tiff files. Do you have any ideas about it? Or any good suggestion? Thanks in advance.







Best regards,

Arron

Hi Arron, 
  
 So, are there still any questions blocked you? Would you try the Map Suite Explorer app? which is installed by default with any Map Suite productions and support the Tiff file. while it was built by winform, all the functions still can be implemented in silver light. 
  
 If any questions, don’t hesitate to let us know. 
 Regards, 
 Johnny