SharpMap 核心架構優勢
- OGC 幾何模型標準化:
IGeometry、IFeature、ILayer
- Provider 模式:
ShapeFileProvider、SqlServer2008Provider、OgrProvider 等
- 渲染管線:Geometry → GDI+ Path →
Graphics.DrawPath
- Symbol 系統缺失:需自行擴展專題渲染能力
Windows Forms 整合示例
private void InitializeMap() {
tocControl1.MapControl = mapControl1; // 圖層控制綁定
// 城市點圖層
var cityLayer = new VectorLayer("City") {
DataSource = new ShapeFileProvider(@"Data\Can_Mjr_Cities.shp"),
Renderer = new SimpleFeatureRenderer {
Symbol = new MarkerSymbol(SymbolType.Circle, Color.Blue, 10f)
}
};
// 道路線圖層
var roadLayer = new VectorLayer("Road") {
DataSource = new ShapeFileProvider(@"Data\mjrroads.shp"),
Renderer = new SimpleFeatureRenderer {
Symbol = new LineSymbol(Color.Green, 2f)
}
};
// 海岸面圖層
var coastLayer = new VectorLayer("Coasts") {
DataSource = new ShapeFileProvider(@"Data\Coasts.shp"),
Renderer = new SimpleFeatureRenderer {
Symbol = new FillSymbol(Color.LightCyan)
}
};
// 添加順序決定繪製疊加:面 → 線 → 點
mapControl1.Map.Layers.Add(coastLayer);
mapControl1.Map.Layers.Add(roadLayer);
mapControl1.Map.Layers.Add(cityLayer);
mapControl1.ZoomToFullExtent();
}
企業級擴展方向
- Symbol 庫系統:標準化點/線/面符號,支持 SLD 樣式文件
- 專題圖渲染器:分級統計、點密度、等值線等專題圖類型
- 空間索引優化:R-Tree 索引加速大數據集查詢與裁剪
- 瓦片金字塔:預渲染切片支持 WebGIS 高性能顯示