【问题标题】:Guidelines for GIS application development [closed]GIS 应用程序开发指南 [关闭]
【发布时间】:2010-11-06 11:17:36
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

标签: gis esri ogc opengis


【解决方案1】:

在网络地图服务器端,值得尝试免费的OSGeo MapGuide Open Source 或商业版的Autodesk Infrastructure Map Server。

【讨论】:

    【解决方案2】:

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

    This 是他们的在线网站。 如果您愿意,this is their repo 会提供有关如何设置自己的 CartoDB 实例的说明的链接。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 另一种很好的 .net 开发方法(但看起来这对你来说不是强制性的),是使用 sharpmap (codeplex.com/SharpMap) 来构建一个 asp.net gis 应用程序,并使用MsSqlServerSpatial (codeplex.com/MsSqlSpatial)
      • +1 用于 MapServer + WMS + OpenLayers。如果你想让它快一点,那么也可以使用 TileCache。此外,几乎所有数据库现在都可以支持空间类型,并且 MapServer 支持大多数数据库,因此请选择您最了解(或想了解)的任何一个。
      【解决方案4】:

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

      数据库:

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

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

      编程语言:

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

      框架:

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

      客户端界面:

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

      服务器:

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

      其他提示

      如果您正在搜索特殊的技术堆栈,OGC Website 是第一个访问点。他们定义了 GIS 领域的许多(不是全部)已知标准,并为每个标准提供了implementations 的列表。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          当时并没有很多替代方案来构建基于丰富 Web 的互联网 GIS 应用程序,而现在有很多(尤其是在 Google 地图上线之后)。

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

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

          顺便说一句,关于替代品,MySQL 也有Spatial Extensions。

          【讨论】:

            【解决方案7】:

            您可以将 Google 地图嵌入网络应用程序吗?这将是最简单的解决方案...

            开源GIS,见Wikipedia's list of open source 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 框架,具有用于地理图形分析和可视化的多个插件架构。

            【讨论】:

            • 即使问题没有明确说明,我认为亲爱的未知这里想要构建一个 web GIS 应用程序,你提到的替代方案没有涵盖。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-01-14
            • 1970-01-01
            • 1970-01-01
            • 2015-05-05
            相关资源
            最近更新 更多