17

我应该为我的理学硕士创建一个 GIS 应用程序,我想知道什么是最好的免费和(最好)开源开发技术?使用什么编程语言来开发这样的应用程序?

已知的选择是: 数据库:PostgreSQL (PostGIS)(建议其他)

编程语言:PHP、Python、Java、...(建议其他)

框架:GeoDjango(如果使用 Python 或 Jython),(建议其他)

客户端 UI:JavaScript (OpenLayers)、Flex、(建议其他)

服务器:Mapserver、Geoserver、Mapfish、(建议其他)

其他注意事项:Hibernate Spatial,支持移动 GIS,(建议其他)

4

7 回答 7

9

afaik:Web 应用程序的最佳选择是使用 gvSIG ( http://www.gvsig.org )准备数据,将数据托管到 postgresql/postgis ( http://www.postgresql.org , http:// postgis.refractions.net),使用 MapServer ( http://mapserver.org/ ) 发布 WMS/WFS 服务,然后使用 openlayers ( http://openlayers.org ) 显示您的数据。该解决方案非常适合我的经验。一个不错的方法是使用 MapFish ( http://trac.mapfish.org/trac/mapfish/wiki ) 一个内部使用 extjs 和 openlayers 但简化开发的 webgis 框架。

于 2009-06-28T08:36:23.510 回答
2

几年前(大约 6 年前),我几乎只使用 MapServer(特别是 PHP MapScript)和 PostGIS,获得了相当不错的结果,尤其是在灵活性部门。我制作了生产应用程序(带分析的地理定位),我什至在这项工作的基础上完成了我的理学硕士论文。我希望这两个,考虑到他们的成熟度,仍然是一个不错的选择。

那时没有很多替代方案来构建基于丰富网络的互联网 GIS 应用程序,而现在有很多(尤其是自从 Google Maps 上线以来)。

从那以后,我得到了一些与 GIS 相关的工作,其中一个使用Cartoweb进行显示,这是一个基于 PHP-Mapscript 的 Web 框架,可扩展且大部分工作。

最佳选择最终取决于您要构建什么。如果您想在分析显示、地图显示、路线和地理编辑方面获得完全的灵活性,那么您必须获得一个可编程的地图服务器。我知道 Mapserver 可以工作,但很有可能 GeoServer 和 MapBuilder 甚至Mapnik也可以工作,具体取决于具体情况。

顺便说一句,关于替代方案,MySQL 也有Spatial Extensions

于 2009-06-28T08:29:08.877 回答
2

您是否可以将 Google 地图嵌入到 Web 应用程序中?这将是最简单的解决方案...

开源 GIS 参见维基百科的开源 GIS 列表,相当完整。

从维基百科粘贴:

就软件历史而言,开源 GIS 软件的开发具有悠久的传统,1978 年出现了第一个系统。现在有许多系统可用,涵盖地理空间数据处理的所有领域。

Steiniger 和 Bocher (2008/9) 回顾了以下开源桌面 GIS 项目:

gvSIG 1.0

GRASS GIS – 最初由美国陆军工程兵团开发,开源:一个完整​​的 GIS

SAGA GIS - 自动地球科学分析系统 - 混合 GIS 软件。SAGA 拥有独特的应用程序编程接口 (API) 和一组快速增长的地球科学方法,捆绑在可交换的模块库中。

Quantum GIS – QGIS 是一个用户友好的开源 GIS,可在 Linux、Unix、Mac OS X 和 Windows 上运行。

MapWindow GIS – 免费、开源的 GIS 桌面应用程序和编程组件。

ILWIS – ILWIS(综合土地和水信息系统)集成了图像、矢量和专题数据。

uDig

gvSIG – 用 Ja​​va 编写的开源 GIS。

JUMP GIS / OpenJUMP –(开放式)Java 统一制图平台(桌面 GIS OpenJUMP、SkyJUMP、deeJUMP 和 Kosmo 源自 JUMP;参见 [3])

其他:

Capaware rc1 0.1

SAGA-GIS v. 2.0.3

Kalypso(软件)– Kalypso 是一个开源 GIS(Java、GML3),主要关注水资源管理中的数值模拟。

TerraView – 处理存储在关系或地理关系数据库中的矢量和栅格数据的 GIS 桌面,即 TerraLib 的前端。

Capaware - Capaware 也是一个开源 GIS,一个令人难以置信的快速 C++ 3D GIS 框架,具有用于地理图形分析和可视化的多插件架构。

于 2009-06-28T07:48:18.380 回答
2

对于感觉更像是“应用程序”而不是包含地图的网页的东西,请查看http://geoext.org/,它结合了 OpenLayers 和 ExtJS。

于 2009-06-28T15:27:13.150 回答
0

很难回答“最佳”工具的问题,因为这取决于您的要求。指定您的需求,我们会找到更准确的答案(正如我所见,您前段时间问过,我希望您已经获得了理学硕士学位)......但是,可能还有其他人仍然对这个问题感兴趣。

数据库:

对于小型桌面应用程序,带有SpatiaLite的 Sqlite可能是一个选项,而不是一个完整的 PostgreSQL/PostGIS 服务器作为后端。PostgreSQL 是大型应用程序或将其与诸如GeoServerUMN MapServer之类的WFS (-T)-Server一起使用的不错选择。

也许普通的旧 Shapefile 格式确实满足您的要求,并且您不需要数据库后端。

编程语言:

我建议使用您已经熟悉的语言。有多种可用语言的绑定,我敢打赌您的语言也受支持。如果你从零开始,我会推荐 Java,因为它易于学习,并且有许多维护良好的开源项目可用。

构架:

我不能建议一个单一的框架,因为它们在特定领域具有所有特殊功能和优势......如果您只需要转换文件格式或坐标而不显示它们,我为什么要建议您使用可视化工具包。我已经在答案的顶部提到了这一点。如果使用 C#,MapWindow6 和 DotSpatial 可能会有趣

客户端界面:

桌面或/和浏览器?操作系统?可能的技术取决于您的需求和环境。如果您坚持使用浏览器(可以显示 WebGL)并且想要展示一些最先进的 fx Cesium可能会很有趣。

服务器:

您已经提到了最著名的开源服务器,我最喜欢的是GeoServer

其他提示

如果您正在搜索特殊的技术堆栈,OGC 网站是您首先要访问的地方。他们定义了 GIS 领域的许多(不是全部)已知标准,并提供了每个标准的实施列表。

于 2013-02-11T22:20:26.243 回答
0

我也只想提一下CartoDB。我已经使用了一段时间了,我认为它很棒。他们有一个对免费帐户有限制的在线网站,但它是开源的,您可以安装自己的实例。它真的很灵活。您可以将数据存储在他们的云 PostGIS DB 或本地托管的数据库中,然后使用 CartoJS 或 Leaflet 等 JS 库连接到 DB 并绘制数据。您可以创建可视化并将它们嵌入 HTML 代码中。

是他们的在线网站。如果您愿意,这是他们的存储库,其中包含有关如何设置自己的 CartoDB 实例的说明的链接。

于 2015-09-30T17:21:14.893 回答
0

在 web 地图服务器端,值得尝试免费的OSGeo MapGuide Open Source或它的商业对应物Autodesk Infrastructure Map Server

于 2016-11-22T13:46:28.747 回答