Гис программирование с SharpMap. Последний слой покрывает другие
Я только начал с ГИС-программирования. Я хочу создать простой сайт с картой на нем. Итак, я выбираю C# и SharpMap в качестве карты lib. Все работает нормально, пока я не добавлю много слоев из файла формы. Последний слой, который я добавляю, это единственный слой, который я вижу. Это часть моего кода:
SharpMap.Map map = new SharpMap.Map(outputsize);
SharpMap.Layers.VectorLayer layCountry = new SharpMap.Layers.VectorLayer("nuoc");
layCountry.DataSource = new SharpMap.Data.Providers.ShapeFile(@"D:\code\SharpMapDemo\SharpmapDemo\App_data\vn_tinh_region.shp", false);
layCountry.Style.Fill = new SolidBrush(Color.Yellow);
layCountry.Style.Outline = new Pen(Color.Black, 1);
layCountry.Enabled = true;
layCountry.Style.EnableOutline = true;
SharpMap.Layers.VectorLayer newLay = new SharpMap.Layers.VectorLayer("tinh");
newLay.DataSource = new SharpMap.Data.Providers.ShapeFile(@"D:\code\SharpMapDemo\SharpmapDemo\App_Data\5tinh_region.shp", false);
newLay.Style.Fill = new SolidBrush(Color.Red);
newLay.Style.Outline = new Pen(Color.Black, 1);
newLay.Style.EnableOutline = true;
map.Layers.Add(newLay);
map.Layers.Add(layCountry);
Так что layCountry - единственный, кого я вижу. Когда я изменяю две последние строки на:
map.Layers.Add(layCountry);
map.Layers.Add(newLay);
newLay - единственный. Любая помощь приветствуется. Спасибо за чтение и извините за мой плохой английский.
1 ответ
Решение
Попробуйте полупрозрачный слой, как показано ниже
// Set up Plate Layer
SharpMap.Layers.VectorLayer PlateLayer = new SharpMap.Layers.VectorLayer("PlateLayer");
PlateLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(LayerPath + Region + "_plates.shp", false);
Color c = Color.FromArgb(30, 100, 100, 100);
Brush b = new SolidBrush(c);
PlateLayer.Style.Fill = b;
PlateLayer.Style.Outline = new Pen(Color.LightGray, 1);
PlateLayer.Style.EnableOutline = true;
MainMap.Layers.Add(PlateLayer);