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编辑的朋友,还望指教。
这是我在网上找到的关于该问题的一个比较全面的回复:

SharpMap简析的更多相关文章
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
- 简析 .NET Core 构成体系
简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
- PHP的错误报错级别设置原理简析
原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...
- Android 启动过程简析
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
- Android RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Java Annotation 及几个常用开源项目注解原理简析
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
- 【ACM/ICPC2013】POJ基础图论题简析(一)
前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...
随机推荐
- 【原】Github+Hexo+NextT搭建个人博客
摘要 GitHub 是一个开源项目的托管网站,相信很多人都听过.在上面有很多高质量的项目代码,我们也可以把自己的项目代码托管到GitHub,与朋友们共享交流.GitHub Pages 是Github为 ...
- 菜鸟学Struts2——Interceptors
昨天学习Struts2的Convention plugin,今天利用Convention plugin进行Interceptor学习,虽然是使用Convention plugin进行零配置开发,这只是 ...
- 在Linux虚拟机下配置tomcat
1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...
- 认识 Azure
本文为官网摘录总结
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- 【原创】免费申请SSL证书【用于HTTPS,即是把网站从HTTP改为HTTPS,加密传输数据,保护敏感数据】
今天公司有个网站需要改用https访问,所以就用到SSL证书.由于沃通(以前我是在这里申请的)暂停了免费的SSL证书之后,其网站推荐了新的一个网站来申请证书,所以,今天因为刚好又要申请一个证书,所以, ...
- warensoft unity3d 更新说明
warensoft unity3d 组件的Alpha版本已经发布了将近一年,很多网友发送了改进的Email,感谢大家的支持. Warensoft Unity3D组件将继续更新,将改进的功能如下: 1. ...
- C#创建dll类库
类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...
- C#委托异步调用
参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...
- ABP文档翻译--值对象
本人是ABP初学者,在看英文文档和@tkb至简 的ABP框架理论研究总结(典藏版)时,发现大神@tkb至简中少了对Value Objects的翻译,看文档是新的,大神没时间把,小弟给补充上. 介绍 值 ...