ThinkGeo.com    |     Documentation    |     Premium Support

Remove default shape files

Hello,


Right now i have used your map and by default it shows all the roads, rivers, rail etc..


Now i dont want to show all this layers on the map except for the Country layer data. Can you please tell me how to remove this layers?


And if you can provide me the list of default layers then it will be very helpful to me for removing them..


 


Thanks


 



 Hi Badal,


I don't understand you very well. Do you mean you are using WorldMapKitWmsWebOverlay just as our installed sample "DisplayASimpleMap" and don't want display some layers of that? Please provide us more information.


Thanks,


Johnny



I am showing map in my web app from the below code… 
  
  mainMap.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
            mainMap.CurrentExtent = new RectangleShape(-51, 65, 30, -70);
            mainMap.MapUnit = GeographyUnit.DecimalDegree;

            WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay();
            mainMap.CustomOverlays.Add(worldMapKitOverlay);
            mainMap.MapUnit = GeographyUnit.DecimalDegree;
            mainMap.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4"));
            mainMap.MapTools.OverlaySwitcher.Enabled = false;
            mainMap.MapTools.MouseMapTool.IsMouseWheelDisabled = false;
            mainMap.MapTools.ScaleLine.Enabled = true;
            mainMap.MapTools.MouseCoordinate.Enabled = true;
            mainMap.MapTools.MiniMap.Enabled = true;
            mainMap.MapTools.LoadingImage.Enabled = false;
            mainMap.MapTools.LoadingImage.Width = 64;
            mainMap.MapTools.LoadingImage.Height = 64;
            
 
  
 This shows me default map…But in map it also shows me different things like roads, railways, river etc… And i dont want this things,i only want country to show up on the map… 
  


Hi, Badal 
  
 If you just want to show the country data on the map, and I think there is no need to use WorldMapKitWmsWebOverlay which will displays all detailed information for the world map. 
 You could use ShapeFileFeatureLayer to load shape file data including cntry02 shape file. If you don’t familiar with it please see the  “Quick Start Guide” of WebEdition. 
 Please refer to the “LoadAShapeFileFeatureLayer”  sample in our installed samples which you could find its source code at “Samples\DataProviders\LoadAShapeFileFeatureLayer.aspx”.  
 And maybe you need to remove code for WorldMapKitWmsWebOverlay. 
  
 Thanks, 
 Khalil

If i remove this below lines then map is not shown at all. Am i right? 

WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay(); 

mainMap.CustomOverlays.Add(worldMapKitOverlay); 



Then i think i need to use the cntry02 shape file to show the countrys and then apply the label there as per your suggestion

Well if i am right here then i have got the imeplement working. But just a one question here regarding country name labeling. 



While using worldmapkit, there is perfect labeling of country, means only few lables shown on zoom level 0, and more labels comes as we zoom in. 



How can i achieve this kind of functionality.I am right now using below code to generate labels but i will preffer the labeling as per worldmapkit. 



            ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(fileName);

            worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromHtml("#f5eee6"), GeoColor.FromHtml("#a79e95"));

            worldLayer.ZoomLevelSet.ZoomLevel04.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromHtml("#f5eee6"), GeoColor.FromHtml("#a79e95"));

            worldLayer.ZoomLevelSet.ZoomLevel04.DefaultTextStyle = TextStyles.Country1("CNTRY_NAME");

            worldLayer.ZoomLevelSet.ZoomLevel04.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            staticOverlay.Layers.Add(worldLayer);



Somehow i cannot add proper code above… so writing it here 
 
            ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(fileName);
            worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromHtml("#f5eee6"), GeoColor.FromHtml("#a79e95"));
            worldLayer.ZoomLevelSet.ZoomLevel04.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromHtml("#f5eee6"), GeoColor.FromHtml("#a79e95"));
            worldLayer.ZoomLevelSet.ZoomLevel04.DefaultTextStyle = TextStyles.Country1("CNTRY_NAME");
            worldLayer.ZoomLevelSet.ZoomLevel04.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            staticOverlay.Layers.Add(worldLayer);


Hi Badal,


You can achieve that by using two layers. For example one is worldLayer and the other one is worldLabelLayer. Please refer to the code below:


ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(fileName);
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;

ShapeFileFeatureLayer worldLableLayer = new ShapeFileFeatureLayer(fileName);
worldLableLayer.ZoomLevelSet.ZoomLevel05.DefaultTextStyle = TextStyles.Country1("CNTRY_NAME");
worldLableLayer.ZoomLevelSet.ZoomLevel05.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

LayerOverlay staticOverlay = new LayerOverlay();
staticOverlay.Layers.Add(worldLayer);
staticOverlay.Layers.Add(worldLableLayer);


Thanks,


Johnny



Thanks Johnny… 
  
 But i am afraid there is some miscommunication here. 
 when i use the worldmapkit, and my zoomlevel 1 is selected then only some of the country name are displayed and others are hidden. and as we started zoom in the other country name also start to appear. 
  
 Now i also want to achieve same thing. I also want to show country name on zoomlevel 1 but only some of the country. Now on zoomlevel 1 all the country names are displayed and it looks messy… 
  
 I have tried your code in below way but same result, all country name are appear together. 
  
String fileName = String.Format(@"{0}{1}", MapPath("…/ShapeFiles/"), "cntry02.shp");
            ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(fileName);
            worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromHtml("#f5eee6"), GeoColor.FromHtml("#a79e95"));

            ShapeFileFeatureLayer worldLableLayer = new ShapeFileFeatureLayer(fileName);
            worldLableLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Country1("CNTRY_NAME");
            worldLableLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


            staticOverlay.Layers.Add(worldLayer);
            staticOverlay.Layers.Add(worldLableLayer);
 
  
 I hope i make my self clear here.

Hi Badal,


I guess I understand what u mean now. Please try the following code to see if it meets your requirements:


ShapeFileFeatureLayer worldLableLayer = new ShapeFileFeatureLayer(fileName);
ClassBreakStyle classBreakStyle1 = new ClassBreakStyle("SQKM");
TextStyle textStyle1 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 9, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 2, 0, 0);
textStyle1.FittingPolygon = true;
TextStyle textStyle2 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 12, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
textStyle2.FittingPolygon = true;
classBreakStyle1.ClassBreaks.Add(new ClassBreak(243300, textStyle1));
classBreakStyle1.ClassBreaks.Add(new ClassBreak(3000000, textStyle2));

ClassBreakStyle classBreakStyle2 = new ClassBreakStyle("SQKM");
TextStyle textStyle3 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 11, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 2, 0, 0);
TextStyle textStyle4 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 14, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
classBreakStyle2.ClassBreaks.Add(new ClassBreak(0, textStyle3));
classBreakStyle2.ClassBreaks.Add(new ClassBreak(3000000, textStyle4));

ClassBreakStyle classBreakStyle3 = new ClassBreakStyle("SQKM");
TextStyle textStyle5 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 12, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 2, 0, 0);
TextStyle textStyle6 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 15, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
classBreakStyle3.ClassBreaks.Add(new ClassBreak(0, textStyle5));
classBreakStyle3.ClassBreaks.Add(new ClassBreak(3000000, textStyle6));

ClassBreakStyle classBreakStyle4 = new ClassBreakStyle("SQKM");
TextStyle textStyle7 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 13, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 2, 0, 0);
TextStyle textStyle8 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 16, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
classBreakStyle4.ClassBreaks.Add(new ClassBreak(0, textStyle7));
classBreakStyle4.ClassBreaks.Add(new ClassBreak(3000000, textStyle8));

ClassBreakStyle classBreakStyle5 = new ClassBreakStyle("SQKM");
TextStyle textStyle09 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 14, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 2, 0, 0);
TextStyle textStyle10 = TextStyles.CreateSimpleTextStyle("CNTRY_NAME", "Arail", 18, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.StandardColors.White, 3, 0, 0);
classBreakStyle5.ClassBreaks.Add(new ClassBreak(0, textStyle09));
classBreakStyle5.ClassBreaks.Add(new ClassBreak(3000000, textStyle10));

worldLableLayer.ZoomLevelSet.ZoomLevel03.CustomStyles.Add(classBreakStyle1);
worldLableLayer.ZoomLevelSet.ZoomLevel03.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level04;
worldLableLayer.ZoomLevelSet.ZoomLevel05.CustomStyles.Add(classBreakStyle2);
worldLableLayer.ZoomLevelSet.ZoomLevel06.CustomStyles.Add(classBreakStyle3);
worldLableLayer.ZoomLevelSet.ZoomLevel07.CustomStyles.Add(classBreakStyle4);
worldLableLayer.ZoomLevelSet.ZoomLevel08.CustomStyles.Add(classBreakStyle5);
worldLableLayer.ZoomLevelSet.ZoomLevel08.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level10;


Please refer to our installed sample "DrawThematicFeatures" where you can find it under "..\ThinkGeo\Map Suite Web Full Edition 3.0\Samples\CSharp Samples\Samples\Styles" folder if you want more information about ClassBreakStyle.


Thanks,


Johnny



Great!! Its perfect… 
  
 Many many thanks Johnny…I was not aware of anything about ClassBreakStyle and ClassBrake will look for documentation in API…

Hi Badal,


You are welcome. Please feel free to ask any questions.


Thanks,


Johnny