ThinkGeo.com    |     Documentation    |     Premium Support

Base map (WorldMapKitWmsDesktopOverlay ) dosenot diaplay

i used WorldMapKitWmsDesktopOverlay  method to display a base map for my shape file. my shapefile units are in meters.


but when the application runs baselayer doesnot display. 


this is my code


winformsMap1.MapUnit = GeographyUnit.Meter;

            

            winformsMap1.CurrentExtent = new RectangleShape(312409.372078, 3725967.771073, 314993.907006, 3723330.807692);



            // add  baselayer 



            WorldMapKitWmsDesktopOverlay bslayer = new WorldMapKitWmsDesktopOverlay();

            winformsMap1.Overlays.Add(bslayer);

            


can anyone tell me how to add google layer as baselayer in desktop routing application?



Is there any other way for base layer, is desktop routing edition support google map or bing maps as base layer for shapefile 


Is there any other way for base layer, is desktop routing edition support google map or bing maps as base layer for shapefile 


Hello Sarah, 
  
 Because our WorldMapKitOverlayis working under map unit decimal degree, so if you want it as the base layer, you need projection your shape file to decimal degree. 
  
 Or you can use GoogleOverlay as your base layer just as you use the WorldMapKitOverlay. 
  
 Regards, 
  
 Gary

Gary, 
  
 i have converted into decimal degree also but still have that problem. 
  
 is desktop edition support google layer? once i tried but there is doesnot give option of javauri function 
  
 kindly tell me how to use google layer or Osm layer in desktop edition 
  


Hi Sarah,


Thanks for your questions!

The World Map Kit Desktop Overlay has a Projection parameter that allow for the choice of DecimalDegrees or SphericalMercator. Spherical Mercator uses meters for its unit and is the same projection used by Google and Bing maps.


worldMapKitDesktopOverlay.Projection = WorldMapKitProjection.SphericalMercator;

If you wish to use Google Maps, Bing Maps , or Open Street Map data we have the GoogleMapsOverlay, BingMapsOverlay, and OpenStreetMapOverlay objects.



Thanks Ryan,


kindly check this code


WorldMapKitWmsDesktopOverlay bslayer = new WorldMapKitWmsDesktopOverlay();

            bslayer.Projection = WorldMapKitProjection.DecimalDegrees;

            winformsMap1.Overlays.Add(bslayer);


 


i used this but it gives the following result



 



Hi Sarah,


Please try the following in your DisplayASimpleMap sample application:


 



private void DisplayMap_Load(object sender, EventArgs e)
        {
            /**Set MapUnit for the Map. 
            We will be using the Spherical Mercator Projection for our World Map Kit Overlay
            which uses Meters for its Coordinate System.**/
            winformsMap1.MapUnit = GeographyUnit.Meter;
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);

            //Setup the World Map Kit Overlay
            WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay();
            //Set the Projection we want to use for the World Map Kit Overlay
            worldMapKitDesktopOverlay.Projection = WorldMapKitProjection.SphericalMercator;
            winformsMap1.Overlays.Add(worldMapKitDesktopOverlay);

            winformsMap1.CurrentExtent = new RectangleShape(-139.2, 92.4, 120.9, -93.2);

            winformsMap1.Refresh();
        }


 Thanks ryan i tried this one also but didn't work for me i also used sample of osm layer but same result map layer doesnot display :(



 Hello Sarah,


 
Sorry Ryan made a mistake, using the map unit meter but with the bounding box which working under decimal degree.
 
So for your situation, at beginning you using 

            winformsMap1.MapUnit = GeographyUnit.Meter;
            winformsMap1.CurrentExtent = new RectangleShape(312409.372078, 3725967.771073, 314993.907006, 3723330.807692);

Map unit is Meter, and boundingbox is working under meter, this is the right way but only for google, bing, openstreetmap, because they are working under meter.
 
Then you changed to map unit decimal dgree but I think maybe you forgot to change the bounding box too.
 
So the right code should be:

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

            WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay();

            worldMapKitDesktopOverlay.Projection = WorldMapKitProjection.DecimalDegrees;
            winformsMap1.Overlays.Add(worldMapKitDesktopOverlay);

            winformsMap1.CurrentExtent = new RectangleShape(-139.2, 92.4, 120.9, -93.2);

            winformsMap1.Refresh();

Let us know if you still have problem.
 
Regards,
 
Gary