ThinkGeo.com    |     Documentation    |     Premium Support

WmsLayerPlugin Usage

Hi,



We have started evaluating the WorldMapWMSService and WMSLayerPlugin projects as we need a MAP server. Our prime

objective is to receive final composited maps as raster images and then we can use them in our CLIENT app on windows form or in our

render engine. From the sample project we went through the  rendered map is available either on the webpage or on the Client Window directly.

How  can we receive the rasterized maps as image buffers which is usable for us? 



Thanks and Regards

Bishwaroop

 





Hi Bishwaroop,



The WmsService supports to render raster image. What we need to do is add the raster image layer and other layers into the MapConfiguration layers collection in your plugin’s GetMapConfigurationCore method. Here are some codes:


protected override MapConfiguration GetMapConfigurationCore(string style, string crs)
        {
            // Get the directory to the sample data
            string worldLayerFilePath = Directory.GetParent(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).FullName).FullName + Path.DirectorySeparatorChar + “SampleData” + Path.DirectorySeparatorChar + “Countries02.shp”;
 
            // Create the world layer from a shapefile and add a style to it
            ShapeFileFeatureLayer ParcelLayer = new ShapeFileFeatureLayer(worldLayerFilePath);
            //LawLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(new AreaStyle(new GeoPen(GeoColor.StandardColors.Blue, 3)));
            ParcelLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(new AreaStyle(new GeoPen(GeoColor.StandardColors.Blue, 2)));
            ParcelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
 
            GeoTiffRasterLayer rasterLayer = new GeoTiffRasterLayer(“RasterImageFilePath”);
            rasterLayer.UpperThreshold = double.MaxValue;
            rasterLayer.LowerThreshold = double.MinValue;
 
            MapConfiguration mapConfiguration = new MapConfiguration();
            mapConfiguration.Layers.Add(“RasterLayer”, rasterLayer);
            mapConfiguration.Layers.Add(“ParcelLayer”, ParcelLayer);
 
            return mapConfiguration;
 
        }

The above codes shows how to draw a composite map including raster image and a shape file.



Please let us know if any questions.



Thanks,



Troy

Troy,



Thanks.We understood the part of configuration of what all we need from the MAP server. Our question is are we bound  this WMSPluginLayer 

to have access to the final rendered Images ?



More over this WMSLayerPlugin some how directly renders on the Winform on the Desktop Window Client app. How do we get access to Image

directly ? some missing links I guess



Regards

Bishwaroop



 Correction 
  
 Our question is that we need the flexibility to acquire the final rasterized image separately instead 
 of being dependent of winformsMap. As its possible we don’t require Form display. We would be need to use this in 
 our render engine as texture. What are the possibility for such usage ? how should we proceeed ? 
  
  
 Bishwaroop 
  
  


Hi Bishwaroop,



Thanks for the verification.

I think what you are required is exactly the same as the WMS purpose. The WMS is a REST service and has its own standard. All the clients app will follow its request rule to get the map image. Here are some links on WMS 



en.wikipedia.org/wiki/Web_Map_Service#Requests

opengeospatial.org/standards/wms



Back into our WMS Edition, once we implement ourselves plugins in WMS Edition, then we can deploy it as a WMS server. We can check the deployment if success by view its admin test page as following:





After the service is done, we can get its metadata information with the link:

localhost:62626/WmsHandler.axd?&REQUEST=GetCapabilities



In client sides, no matter ThinkGeo Desktop edition, web edition or your render engine, you can even view them in any libraries like OpenGis,OpenLayers… which have to follow a rule to request the map image. Here is a requesting url sample:

localhost:62626/WmsHandler.axd?LAYERS=Change%20Style%20By%20User&STYLES=DEFAULT&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-135,45,-90,90&WIDTH=256&HEIGHT=256

you can change the above parameters like layer name, tile width/height,epsg etc…



Thanks,



Troy