写在前面

最近开始研究开源GIS,国内开源GIS的资料很少,而基于.net的又是少之又少。所以决定把自己研究的资料进行总结整理,技术在于分享,本系列(计划是写一个系列,如果我可以坚持下来的话)部分是自己总结,部分来源于网络摘抄。

技术方案

主要需求是采用B/S架构,前端展示地图,并且实现地物(点线面)的增删改,以及属性拾取与编辑。整套解决方案大概由这几个部分组成(个人认为):地图数据,GIS服务器,GIS中间件(GIS类库),WEB服务器和客户端。

WEB服务器

由于采用.net环境,所以web服务器必然是IIS。

GIS中间件

虽然GIS服务器也能实现一些基本功能,但是采用开源GIS类库,可扩展性更高,操作数据,数据分析比较方便,而且可以移植到C/S程序。对于Java来说,比较主流的是GeoTools,而.net的最佳选择是DotSpatial,源码用C#编写。DotSpatial是基于.net 4 的一个开源GIS库,它提供有一个可视化的map控件,可以再Windows Form或者Web Application上展示地图。能够方便的支持shapefile、grid及其它栅格/影像数据的读写,在图形渲染方面,提供了较多实用的接口,开发人员可充分定制地图的渲染效果。支持数据的投影处理以及一些常用的分析功能。

地图数据

有两种,一是文件存储,直接以Shapefile文件形式存储;二是利用空间数据库。在开源空间数据库中,比较成型的有PostGIS,MySQL Spatial以及Spatialite。其中PostGIS是开源数据库PostgreSQL的扩展模块,Spatialite是SQLite的扩展模块,而MySQL Spatial是开源数据库MySQL的扩展模块。相比较而言,在开源GIS领域,PostGIS能够得到更为广泛的支持,但由于DotSpatial貌似只支持Spatiite,所以只能选择Spatiite。对于数据编辑,可以采用QGIS(基于C++写的)或者MapWindow 6(基于DotSpatial开发的)

GIS服务器

GeoServer或者MapServer。GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,MapServer则是基于C实现的。个人感觉GeoServer在功能上更加强大,而MapServer似乎对于大数据量的处理更加高效。关于二者之间的比较。所以个人选择GeoServer,GeoServer原生是不支持Spatialite的,需要安装扩展,这里是教程

客户端

主流的是Openlayers。OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择。 在操作方面,OpenLayers 除了可以在浏览器中帮助开发者实现地图浏览的基本效果,比如放大(Zoom In)、缩小(Zoom Out)、平移(Pan)等常用操作之外,还可以进行选取面、选取线、要素选择、图层叠加等不同的操作,甚至可以对已有的OpenLayers 操作和数据支持类型进行扩充,为其赋予更多的功能。

原文链接:http://www.cnblogs.com/hao-zhang/p/5744810.html

最新文章

  1. 在ubuntu 14.04 64位添加32位库
  2. 嵌入式Linux驱动学习之路(五)u-boot启动流程分析
  3. vbox下Oracle Enterprise liunx5.4虚拟机安装10G RAC实验(四)
  4. java 项目打包流程速记
  5. OneAPM 云监控部署与试用体验
  6. JavaScript如何获得Select下拉框选中的值
  7. Java联网技术之一TCP
  8. for语句应用:乘法表
  9. vim 折叠代码技巧汇总
  10. boost库在工作(39)网络UDP异步服务端之九
  11. cropbox插件实现的头像裁剪效果
  12. spring AOP 是如何一步一步被简化的
  13. 【Alpha】第五次Daily Scrum Meeting
  14. perl-5.14.0在新版gcc中编译不通过解决办法
  15. Nginx 简单记录
  16. Oracle 10g 使用REGEXP_SUBSTR 分拆字符串 (转)
  17. Go语言学习笔记(三) [控制结构、内建函数]
  18. Python字符串和列表的内置方法
  19. React16新特性
  20. pl/sql中文乱码

热门文章

  1. 基于SSL的WCF传输安全
  2. 将非Maven管理的jar打包到Maven本地资源库
  3. Java邮箱发送——企业版
  4. mysql5.6之 传输表空间迁移表或恢复误删除的表
  5. BZOJ4130:[PA2011]Kangaroos
  6. jenkins插件
  7. tree指令
  8. 天梯L2-001. 紧急救援(25分)
  9. JeeSite入门介绍(一)
  10. 【知识碎片】SQL篇