博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几个开源GIS软件
阅读量:2120 次
发布时间:2019-04-30

本文共 1596 字,大约阅读时间需要 5 分钟。

去年开始接触了一些开源GIS软件,个人觉得这些软件做的挺不错的,想介绍给使用GIS的朋友们。

       从空间数据库 说起吧。在空间数据库领域,商业化的产品有ORACLE SPATIAL,以及以前的ARC SDE等等,而开源空间数据库虽然在功能上略有欠缺,但是在性能上毫不逊色。开源的空间数据库主要是postgresql和mysql的空间插件,分别是postGIS和mySpatial。目前由于PG对于面向对象支持的更好一些,所以postGIS在性能上和功能上都比myspatial要强一些。但是两者都有一个最重要的缺陷,就是不直接支持栅格数据。解决方案是将栅格数据存储为BLOB类型,并且对其建立四叉树索引,用以模拟商业数据库对栅格数据的存储。相对来说我更喜欢POSTGIS一些,原因有三:1,MYSQL本身不是在所有情况下免费,而PG在所有情况下都免费;2,POSTGIS性能和功能上都强于myspatial;3,国外已经有很多基于POSTGIS的成功应用,可以降低风险。

       接下来轮到桌面软件了。QGIS和GRASS是很好的桌面GIS,当然基于ECLIPSE平台的UDIG也是另外一个选择。QGIS的最大特点在于界面很友好,熟悉ARCGIS的人都能很快的掌握QGIS的操作,另外QGIS对WMS的支持也不错。再者QGIS可以无缝集成POSTGIS,最后QGIS几乎完全照搬了GRASS的分析功能,因此其分析功能也很强大。GRASS本是美国军方开发的GIS,开源后一直受到美国大学老师们的青睐,它可以提供很多ARCGIS能提供的分析功能(当然每一种功能可选的算法没后者多),但是GRASS的界面比较丑陋,很多功能需要手动运行命令,因此不太适合大多数人用。基于eclipse平台的UDIG是桌面GIS的又一个选择,由于它是基于eclipse平台的,运行起来比较慢一点,而且比较耗内存。与前两者相比,它的优势在于操作的简单性,而且支持很多种空间数据源,包括很多商业空间数据库,缺点主要是分析功能比较弱。不过现在UDIG发展很迅速,也建议尝试一下。

       开源GIS服务器主要有map server和geo server。Map server有两个版本,完全免费的那个那个版本是由明尼苏达大学开发的,全部是用C语言完成,效率很高可以媲美ARCGIS SERVER,并且支持我所知道的所有GIS数据源,但是相对来说简陋一些,并且没有内置AJAX支持。而map server的企业版本来是auto desk公司的map guide,这个版本功能很强大,而且还有IDE支持,当然IDE也有两个版本(付费的和不付费的),此外auto desk还封装了很多AJAX组建,因此这个版本可以说是真的企业级支持了。而geo server则是另外的选择了,

它是基于JAVA平台做的,安装时需要JDK1.4(高版本的也不行),其功能上和map server的完全免费版类似,但是性能上次之,只是如果对跨平台要求比较高的话,可以考虑使用它。此外,OTN上的文章一直喜欢使用GEO SERVER来发布ORACLE  SPATIAL的地理数据,也不知道是为什么。

       此外开源GIS客户端技术,也进行的如火如荼,好几个框架都实现了对AJAX的支持,

虽然我没有仔细研究这些框架,但是我觉得进行一般的GIS应用因该没什么问题。据我所知美国NASA就利用POSTGIS来管理他们好几个TB的空间元数据,而英国陆军部好像使用了map server来发布一些他们的地理数据。相比之下,我们国家即使是一个小小的县级市,在做自己门户网站时候,都是使用ARCGIS+ORACLE+WEB LOGIC的超豪华阵容,其实我们完全可以用QGIS+POSTGIS+TOMCAT来实现,这样从软件投入成本来看,我们几乎可以不花一分钱,可以节约多少劳动人民的血汗钱阿。     

转载地址:http://gekrf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-41》75.颜色分类
查看>>
Leetcode C++《热题 Hot 100-42》78.子集
查看>>
Leetcode C++《热题 Hot 100-43》94.二叉树的中序遍历
查看>>
Leetcode C++ 《第175场周赛-1 》5332.检查整数及其两倍数是否存在
查看>>
Leetcode C++ 《第175场周赛-2 》5333.制造字母异位词的最小步骤数
查看>>
Leetcode C++ 《第175场周赛-3》1348. 推文计数
查看>>
Leetcode C++《热题 Hot 100-44》102.二叉树的层次遍历
查看>>
Leetcode C++《热题 Hot 100-45》338.比特位计数
查看>>
读书摘要系列之《kubernetes权威指南·第四版》第一章:kubernetes入门
查看>>
Leetcode C++《热题 Hot 100-46》739.每日温度
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>