SharpMap简析

简介: 1.背景因为项目需求,需要基于开源项目来对SHP进行相关操作。涉及到的主要功能就是加载SHP读取其中的属性信息和几何信息。于是选择了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编辑的朋友,还望指教。

这是我在网上找到的关于该问题的一个比较全面的回复:

目录
相关文章
|
11月前
|
存储 前端开发 JavaScript
AntV X6源码探究简析
AntV是蚂蚁金服全新一代数据可视化解决方案,其中X6主要用于解决图编辑领域相关的解决方案,其是一款图编辑引擎,内置了一下编辑器所需的功能及组件等,本文旨在通过简要分析x6源码来对图编辑领域的一些底层引擎进行一个大致了解,同时也为团队中需要进行基于X6编辑引擎进行构建的图编辑器提供一些侧面了解,在碰到问题时可以较快的找到问题点。
283 0
|
6月前
|
前端开发 Java 程序员
SpringMVC的工作原理及底层剖析,你值得一看
剩下的都在刚开始那段代码中了,其实这个也没啥就是简单的看看MVC工作的时候底层在干啥,不合适的地方多多指教。
31 0
|
9月前
|
存储 Kubernetes 监控
【k8s 系列】k8s 学习二十七 - 4,k8s 自身原理 4
前面咱们分享了 mater 和 worker 节点里面都有哪些组件,他们又是各自主要负责的工作是什么,现在我们心里应该都有数了吧
104 0
|
11月前
|
JSON 前端开发 数据可视化
umi3源码探究简析
作为蚂蚁金服整个生态圈最为核心的部分,umi可谓是王冠上的红宝石,因而个人认为对于整个umi架构内核的学习及设计哲学的理解,可能比如何使用要来的更为重要;作为一个使用者,希望能从各位大佬的源码中汲取一些养分以及获得一些灵感
188 0
|
12月前
|
数据挖掘 Perl
Mummer 用法简析
Mummer 用法简析
84 0
|
设计模式 druid 网络协议
当我们说起看源码时,我们是在看什么
当我们说起看源码时,我们是在看什么