ThinkGeo.com    |     Documentation    |     Premium Support

Display Non Geo files?

Here is the requirement and would like to know the right way to do it.


There are two modes. Operator can switch between the modes.


1. Display Non geo images - display only non geo images with given XY (0 to 100 meters) coordinates. display xy coordinates on map instead of Lat and Long.


2. Display Geo images - display geo (raster and vector data) images. raster has respective world files and vector data files carry the information. Display Lat and Long.


Q1. How do i display the non geo images just knowing the XY coordinates in meters?


Q2. What is the difference between Layers and Overlays? when to use what?


Q3. Can i display combination of Raster and Vector data files?


Appreciate your quick response.


 



Hi Rajanikanth, 
  
 A1. Change the mapUnit to Meter. Map1.MapUnit = GeographyUnit.Meter. 
  
 A2. Overlay can be added to the Map directly, but layer could only be added to a LayerOverlay and then add the layeroverlay to the map. Any layer can be added into a LayerOverlay, and any overlay can be added into the Map.If you want to display a layer e.g. ShapeFileFeatureLayer, add it to a LayerOverlay and add the LayerOverlay to the Map. if you want to display an Overlay, e.g. WorldMapKitWmsWpfOverlay, just add it to the Map. 
  
 A3. All the images are raster images on the Map. 
  
 Thanks, 
  
 Edgar

Thanks for your repsonse.  
  
 I have some more questions… 
  
 1. Let say my image size is 300 * 400. i need to display coordinates starting (0,0) top left  to (300,400) bottom right when mouse pointer is on image. Mouse coordinates should be (0,0) or unknown when mouse pointer is outside image. this image is nothing to do with world coordinates. so i call it as non geo image. 
  
 2. Is it possible to display the raster image without world file or without having world information within image? I am trying to display the images which doesnt have world information.  
  


Hi Rajanikanth,


1, You can use the following code to display:



            LogoMapTool logo = new LogoMapTool();
            logo.Source = new BitmapImage(new Uri("your image", UriKind.RelativeOrAbsolute));

            Map1.MapTools.Add(logo);
            Map1.Refresh();

2, It's not possible to display that, if the image is on the map, it should have world information. 


Regards,


Edgar



Any how, that is not what i wanted. I have one more question… 
  
 I know the map size (1200 * 1000 meters). I always need to display the map at starting (0,0) to (1200 * 1000 meteter) on map suite. The input raster image can be of any size but i have to fit the image within the above size. which means i need to strech it to the above size. 
  
 Can some one through light on how to achive this.

Attached is the sample, please have a try. Notice these are two parts of one archive, as the type 001 is not allowed to upload, please remove the last extension ".zip" to make them "DisplayASimpleMap.zip.001" and  "DisplayASimpleMap.zip.002" and extract them. 


Hope it helps,


Edgar



DisplayASimpleMap.zip.001.zip (490 KB)
DisplayASimpleMap.zip.002.zip (455 KB)

Thanks for the response. I tried the following code. 
  
 rasterLayer = new GdiPlusRasterLayer(RasterImageFilePath, new RectangleShape(0,100,100,0);
 rasterLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException;
 rasterLayer.UpperThreshold = double.MaxValue;

 Map1.MapUnit = GeographyUnit.Meter;
 
 
  
 when i see the map it is at zoom level 20 already. I cant zoom in further. Cant i zoom in further?

No, the minimum width under Meter is 220, so you can't zoom in any further, however, you can add some custom zoom levels to make it happen.



            double scale = winformsMap1.ZoomLevelSet.ZoomLevel20.Scale;
            for (int i = 0; i < 5; i++)
            {
                winformsMap1.ZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(scale));
                scale /= 2;
            }

Hope it helps,


Edgar