SharpMap简析
1.背景
因为项目需求,需要基于开源项目来对SHP进行相关操作。涉及到的主要功能就是加载SHP读取其中的属性信息和几何信息。于是选择了Sharpmap来进行,在使用中对其相关功能做了初步了解,做个总结。
2.SharpMap 简介
官网地址:http://sharpmap.codeplex.com/
在其中可以下载最新的Sharpmap源码。在官网中可以看到目前最新的更新基本停留在2014年,据闻目前其作者已经入职了esri。
2.1基本功能
(1)符合OpenGIS的简单要素规范,支持点、线、面、多点、多线、多面、集合对象集合等要素集合。
(2)支持常规的地图操作,例如旋转、平移、缩放等。
(3)实时的地图投影转换。
(4)使用异步委托实现效率最大化,可编制展示复杂的地图主体渲染。
(5)支持Web地图展示,支持AJAX地图控件,支持WMS服务。
(6)有很好的接口支持数据格式和图层的扩展。
2.2支持的格式
(1)支持矢量数据格式:例如ESRI Shape File、PostGIS、Oracle、Microsoft SQLServer、SQLite等。
(2)支持栅格数据格式:例如.bmp、.gif、.tif、.png、.dem等格式。
(3)WMS地图服务。
2.3引入的第三方库
BruTile:这是基于C#开发的支持GIS瓦片(tile)的开源代码库地址为:https://github.com/BruTile/BruTile
NetTopoLogySuite:基于.net平台处理GIS空间数据及其空间关系的类库。开源代码库地址为:https://github.com/NetTopologySuite/NetTopologySuite
GeoAPI,实现.net与GIS互操作开源代码库地址为:https://github.com/NetTopologySuite/GeoAPI有兴趣的话可以研究一下。
ProjNET:基于.Net开源的地图投影库,支持基准面转换,支持大地坐标系,地心坐标系以及投影坐标系。开源代码库地址为:http://projnet.codeplex.com/
2.4环境搭建
下载好DLL后,将其引入:
3.几个Demo
3.1添加数据至MapBox
3.2基本工具栏
3.3读取SHP
4.一个扩展问题
SharpMap可以对图层做渲染展示,空间查询,拓扑判断等功能,相关功能在网上均能找到例子。但是对SHP的编辑,SHP的创建目前没有找到合适例子,查看源码也没有找到相关接口,如果有知道如何基于SharpMap做SHP编辑的朋友,还望指教。
这是我在网上找到的关于该问题的一个比较全面的回复:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2014-12-21 GeoServer中利用SLD配图之矢量图层配图