ThinkGeo.com    |     Documentation    |     Premium Support

World Map Kit WMS Problems - No maps displayed

I installed the WorldMapKitServer, successfully launch from localhost/WorldMapKitServer/


Click on "Preview" and get the map to display. BUT, I create a desktop app with the following code, the app launches but nothing displays. Here is the form code from the WorldMapKitServerSamples:


 


 



 private void Form1_Load(object sender, EventArgs e)
        {
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
            winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
            winformsMap1.CurrentExtent = new RectangleShape(-126, 57, -70, 18);

            // You can access to the World Map Kit Server for free, but with watermark on every tile image
            TiledWmsLayer tiledWmsLayer = new TiledWmsLayer(new Uri("localhost/WorldMapKitServer/WmsServer.axd"));

            // Also you can access to the World Map Kit Server with billable account, 
            // otherwise you will get watermark on every tile image
            //tiledWmsLayer.ClientId = "YourClientId";
           //tiledWmsLayer.PrivateKey = "YourPrivateKey";

            // You need to specify the name and style of Layer you want to consume
            tiledWmsLayer.ActiveLayerNames.Add("WorldMapKitLayer");
            tiledWmsLayer.ActiveStyleNames.Add("WorldMapKitDefaultStyle");

            LayerOverlay staticOverlay = new LayerOverlay();
            staticOverlay.Layers.Add("WorldMapKitServer", tiledWmsLayer);
            winformsMap1.Overlays.Add(staticOverlay);

            winformsMap1.Refresh();
        }

Here is the Web.config



<configuration>
    <appSettings>
                     The WmsPluginPath is where we will check for plugins.
        -->
        <add key="WmsLayerPluginsPath" value="\WorldMapKitPlugins\"/>
        
                     The directory path of WorldMapKit Data.
    
        <add key="WorldMapKitData" value="C:\WorldMapKitData"/>
        -->
      <add key="WorldMapKitData" value="E:\ThinkGeoSDK\Data1"/>

                   The directory path of WorldMapKit SphericalMercator Data.
        -->
        <add key="WorldMapKitSphericalMercatorData" value="C:\WorldMapKitSphericalMercatorData"/>
        
                     The cache folder for the WorldMapKit Server.
       
        <add key="WorldMapKitCache" value="c:\WorldMapKitServerCache\"/>
        -->
        <add key="WorldMapKitCache" value="E:\ThinkGeoServerCache\" />

                   The "RequireSingedUrl" is used to set whether we apply the default "License Strategies" to your own Map Server.
             If it’s true, your own Map Server will have two kinds of users. Ones with "Free accout" to get the images 
             watermarked, and others use "Premium account" to requst images without watermarked. Otherwise, everybody 
             can access your map server without any license limits. 
        -->
        <add key="RequireSignedUrl" value="true"/>

                    users wait untill the cache has been expired if you changes them. You can modify the expiration time here.
         -->
        <add key="ClientListCacheExpirationInMinutes" value="30"/>
    </appSettings>
    <system.web>
        <httpHandlers>
                          The httpHandlers section is required for running ASP.NET under Internet
              Information Services 6.0.  It's also necessary for previous version of IIS.
              For more information, see msdn.microsoft.com/en-us/library/46c5ddfy%28v=VS.71%29.aspx.
            -->
            <!--Map Suite WMS Server Edition Http Handlers-->
            <add path="WmsServer.axd" verb="GET" type="ThinkGeo.MapSuite.WorldMapKitServer.WorldMapKitWmsHandler"/>
            <!---->
        </httpHandlers>
        <compilation debug="true"/>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <handlers>
                            The system.webServer configuration section in the Web.config file specifies IIS 7.0 settings 
                that are applied to the Web application. It is not necessary for previous version of IIS. 
                For more information, see msdn.microsoft.com/en-us/library/bb515251.aspx.
            -->
            <!--Map Suite WMS Server Edition Http Handlers-->
            <add name="WmsServer" path="WmsServer.axd" verb="GET" type="ThinkGeo.MapSuite.WorldMapKitServer.WorldMapKitWmsHandler"/>
            <!---->
        </handlers>
    </system.webServer>
</configuration>


Also, I am not sure what goes in the path to "WorldMapKitSphericalMercatorData" Thanks in advance!



Luis,


 By looking at your code, there is immediatly one thing that caught my eyes. You are using WorldMapKit with the Spherical Mercator data. Sherical mercator is the projection also used by Google Map, Bing map etc as opposed to WorldMapKit with Decimal Degree Data. Decimal Degree is when the data is displayed in Geodetic Longitude/Latitude. Spherical Mercator is incompatible with MapUnit in DecimalDegree. So, the first thing I would do is to change the  MapUnit to Meters. Also, I see that you define the extent of the map with decimal degrees values. You will need to convert those values to Spherical Mercator. So the lines:


winformsMap1.MapUnit = GeographyUnit.DecimalDegree;


winformsMap1.CurrentExtent = new RectangleShape(-126,57,-70,18);


will have to be changed to:


 


 


 



    wpfMap1.MapUnit = GeographyUnit.Meter;

    ManagedProj4Projection proj4 = new ManagedProj4Projection();
    proj4.InternalProjectionParameters = ManagedProj4Projection.GetEpsgParametersString(4326); //WGS84 (Decimal degrees)
    proj4.ExternalProjectionParameters = ManagedProj4Projection.GetGoogleMapParametersString(); //Spherical Mercator projection also used by WMK.

    proj4.Open();
    Vertex projVertexUL = proj4.ConvertToExternalProjection(-126, 57);
    Vertex projVertexLR = proj4.ConvertToExternalProjection(-70, 18);

    wpfMap1.CurrentExtent = new RectangleShape(projVertexUL.X, projVertexUL.Y, projVertexLR.X, projVertexLR.Y);


Sorry, I still get blank form with no maps, only wartermark - UNLICENSED everywhere. Here is the code I am using as suggested:



 winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
                        winformsMap1.MapUnit = GeographyUnit.Meter;


            var proj4 = new ManagedProj4Projection();
            proj4.InternalProjectionParameters = ManagedProj4Projection.GetEpsgParameters(4326); //WGS84 (Decimal degrees)
            proj4.ExternalProjectionParameters = ManagedProj4Projection.GetGoogleMapParameters(); //Spherical Mercator projection also used by WMK.

            proj4.Open();
            var projVertexUl = proj4.ConvertToExternalProjection(-126, 57);
            var projVertexLr = proj4.ConvertToExternalProjection(-70, 18);


            winformsMap1.CurrentExtent = new RectangleShape(projVertexUl.X, projVertexUl.Y, projVertexLr.X, projVertexLr.Y);

            TiledWmsLayer tiledWmsLayer = new TiledWmsLayer(new Uri("localhost/WorldMapKitServer/WmsServer.axd"));

            tiledWmsLayer.ActiveLayerNames.Add("WorldMapKitLayer");
            tiledWmsLayer.ActiveStyleNames.Add("WorldMapKitDefaultStyle");

            LayerOverlay staticOverlay = new LayerOverlay();
            staticOverlay.Layers.Add("WorldMapKitServer", tiledWmsLayer);
            winformsMap1.Overlays.Add(staticOverlay);

            winformsMap1.Refresh();

Also, what should I use on Web.config for: 
 <add key="WorldMapKitSphericalMercatorData" value="C:\WorldMapKitSphericalMercatorData"/>


 




Luis, 



It would seem that you might have a version that has a bug in the WMSServerEdition.dll. I created a Customer Portal ticket for this issue so that we might transfer this dll to you. Please login to the Customer Portal (helpdesk.thinkgeo.com) to see this ticket.



Ryan, it still doesn't work. I installed the new dll into the bin directory of the installation as well as on the dependencies directory.


 


When I try the url: localhost/WorldMapKitServer/WmsServer.axd


I get the excetpion: 
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
  <!DOCTYPE ServiceExceptionReport (View Source for full doctype...)> 
- <ServiceExceptionReport version="1.1.1">
  <ServiceException>WMS Server Exception See Server Trace. 
  </ServiceExceptionReport>



 Luis,



When visit localhost/WorldMapKitServer/WmsServer.axd without any parameters, it will throw an exception on WMS Server as this request is not completed.  You need to add more parameters to make the URL valid, like this as following:


localhost/WolrdMapKitServer/...HEIGHT=256


So let’s try this link on your machine first. If it works fine, it means the server is fine and there is something wrong on the client side. Can you then run the WorldMapKitServerSamples in run time instead of debug mode (in Visual Studio, hit Ctrl+F5 instead of just F5), and if it then works fine, we can almost say your component is not properly installed. So can you have a try first?


Thanks,


Ben



Ben, no good. The first image below is accessing the url you give directly from the browser, and the second image is running the DesktopEditionSample from WorkMapKitServerSamples run time (Ctrl + F5)






 




Ok, we are going somewhere now. If I run the WpfEditionSample run time it works now, but the DesktopEditionSample still doesn't! Good news!!!!


 


p.s. Running on debug mode WpfEditionSample doesn't work!



Luis, 
  
 So we can say the Server is fine but the WpfEdition is not properly installed. Have you installed WpfEdition on that machine? One development license can only be used on one machine so if you just copy the WpfEdition assembly from another machine, it will not work on debug mode. If you did install WPFEdition on that machine you need to reinstall it. Just uninstall the WpfEdition and install it again, note you need to have internet access for both uninstalling and installing. After installation the HowDoI samples should be working fine.  
  
 Can you try the WpfEdition fist and see if Desktop Edition has the same issue? You can check the Desktop HowDoI samples to make sure the DesktopEdition is properly installed. Let us know if you need any further assistance.  
  
 Thanks, 
  
 Ben