I would add to this that you should be able to set the MapControl.ZoomLevelSet.ZoomLevel01.Scale to a custom scale, and when drawing layers if the scale hasn't been set in the layer then to revert to using the MapControl.ZoomLevelSet values. I have a situation where I have a shapefile for 1:100k road data, I have another shapefile for 1:2million and 1:5million.
I have three ShapeFileFeatureLayers
Roads100k
Roads2m
Roads5m
I wish to show
Roads100k from scale 0 - 500,000
Roads 2m from scale 500,001 - 1,500,000
Roads5m from scale 4,000,000 up
I cannot seem to achieve this, I tried
Map.StaticOverlay.Layers.Add("Roads5m", Road5mLayer)
Road5mLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
Road5mLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Black)
Road5mLayer.ZoomLevelSet.ZoomLevel01.Scale = 4000000
Road5mLayer.ZoomLevelSet.ZoomLevel20.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Black)
Road5mLayer.ZoomLevelSet.ZoomLevel20.Scale = 10000000
Map.StaticOverlay.Layers.Add("Roads1m", Road1mLayer)
Road1mLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Orange)
Road1mLayer.ZoomLevelSet.ZoomLevel01.Scale = 700000
Road1mLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
Road1mLayer.ZoomLevelSet.ZoomLevel20.Scale = 4000000
Road1mLayer.ZoomLevelSet.ZoomLevel20.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Orange)
Map.StaticOverlay.Layers.Add("Roads250k", Road250kLayer)
Road250kLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Red)
Road250kLayer.ZoomLevelSet.ZoomLevel01.Scale = 1
Road250kLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
Road250kLayer.ZoomLevelSet.ZoomLevel20.Scale = 700000
Road250kLayer.ZoomLevelSet.ZoomLevel20.DefaultLineStyle.CenterPen = New GeoPen(GeoColor.StandardColors.Red)
Any ideas?