这些ArcGIS产品的FOSS等效项是什么?[关闭]


49

我是ESRI软件的长期用户,现在我需要使用免费和开源的软件。

我一直在阅读有关OpenLayers,PostgreSQL,PostGIS,GeoServer和MapServer的文章,但是我找不到很好的概述来说明每种产品的用途,需要的原因以及它们如何组合在一起。

例如,http://www.osgeo.org/http://freegis.org/都列出了一堆产品,但没有提供足够的信息让我确定哪些产品是相关的。

在ArcGIS中,我将使用以下内容:

  • 文件地理数据库ArcSDE地理数据库用于数据存储
  • ArcMap桌面可编辑数据并编译地图文档
  • ArcGIS Server创建Web服务
  • ArcGIS Server JavaScript API从Web服务创建最终用户地图

等效的FOSS产品是什么?


4
这个问题的答案可能会导致一系列博客文章:-)。
ub

3
我认为“如何入门FOSS4G”一文将非常有用。我见过的大多数资源都是由经验丰富的开发人员为经验丰富的开发人员编写的,没有进行高层次的概述
Stephen Lead

@whuber我同意,我们也应该促进即将举行的FOSS4G 2011大会
Kirk Kuykendall

@Kirk我认为推广任何东西(会议,软件等)的前景超出了本网站的范围,并且由于潜在的利益冲突(或外观)而具有破坏性。通过网站上的广告存在一种促进机制,这是会议组织者与SE之间的问题。但是,此处已发布了值得注意的新闻事件。也许在我们的博客上发帖是走的路...
Whuber

1
@whuber,对不起,我应该详细说明。关于FOSS的一系列博客也可以促进FOSS4G会议。我建议这样做的原因之一是,为Esri会议的促销活动分配平均的时间。
Kirk Kuykendall

Answers:


63

为了存储数据,要提到的前两个替代方法是PostGISSpatiaLite

  • SpatiaLite是具有空间功能的SQLite数据库,这意味着它是基于文件的,紧凑而快速的。

  • PostGIS是PostgreSQL数据库上的空间功能。这意味着它非常强大,具有以有效方式处理大型数据集和复杂查询的能力。

在转到桌面之前,您应该意识到,可以直接在数据库中非常高效地完成很多任务。您通常在ArcMap中执行的大多数操作都是等待不同的对话框弹出,而使用几行SQL代码直接可以使执行速度提高很多倍。这意味着您还可以保存所做的操作,然后只需保存SQL代码即可非常轻松地在另一个数据集上再次执行此操作。这里的许多PostGIS问题都与如何编写这些查询有关,因此您可以通过浏览带有PostGIS标签的问题来了解如何完成。

然后在桌面端。有很多桌面解决方案。我认为是时候承认台式机ESRI很好了。如前所述,在ArcMap中完成的大多数任务最好在数据库的更深处完成,但涉及需要桌面解决方案的任务时,ArcMap是不错的选择。我使用的是QGIS,如果我有预算要花,我会转移ESRI许可成本以支持QGIS中的错误修复。QGIS是一款出色的软件,可以或多或少地完成ArcMap可以完成的所有工作。但是,可能需要一两个ArcInfo许可证(以金钱计)来完善它。您还可以看看打开跳转GvSIGuDIG多。

对于Web服务,您可以使用MapServer,GeoServer,TinyOWS等。

  • GeoServer具有一个非常直观的Web界面,可能是最容易上手的。GeoServer可以完成您想要的大多数事情。它可以为WMS WFS Tiled服务提供服务,等等。都是用Java编写的。

  • MapServer用C编写,我认为可以说它是WMS服务之王。至少它在去年的FOSS4G会议上赢得了点球大战(ESRI不敢参加)。Mapserver是通过“地图文件”配置的,我不知道任何图形界面。但是对于认真的wms服务来说,这是一个非常有趣的选择。

  • 对于可编辑的wfs-services,您前面已经提到了GeoServer,还有TinyOWSTinyOWS是一个用C编写的小型wfs服务器。最近,由于您可以对两者使用相同的映射文件,因此它已更加集成在Mapserver中。

然后客户端在网络上。我对那里的所有可能性不太了解,但是大多数解决方案都是在OpenLayers上以一种或另一种方式构建的,这是Javascript库。

我认为,从ESRI世界移开将为您带来另一个非常重要的可能性。如果愿意,您也可以自由地离开Windows平台。您可以将所有内容放在任何Linux发行版上。

上面提到的软件与Linux一起将大大减少对硬件的需求。

运行良好的FOSS软件的一个示例是挪威官方地图机构提供的Norgeskart地图。

在底部,他们使用PostGIS服务Mapserver。在Geowebcache中缓存切片,并在顶部使用基于OpenLayer的客户端。它不像Silverlight解决方案那样浮华,但也可以这样做。

他们以前使用过ESRI软件,但是当容量和速度方面的需求增加时,他们不得不放弃使用。


尼克拉斯,非常感谢-这确实帮助我知道从哪里开始
Stephen Lead

2
以我的经验,ESRI仍然毫无争议地占据着GIS活动的唯一位置是制图。我很乐意看到qgis和inkscape或scribus的组合,并且在qgis + inkscape方面取得了一些成功,但仅适用于很少涉及要素和顶点的地图(其中“很少”表示成千上万个反对数十或数百个数以千计)。优势的第二个方面是凝聚力。有了arcgis,只要有人有钱,大多数东西就在那里。用牙线花很多时间将东西粘合在一起。但是,这种情况正在迅速改善,尤其是在qgis中。
马特·威尔基2011年

21

Nicklas已经指出了最受欢迎的开源软件包。如果您对台式机和服务器GIS的紧密结合感兴趣,则可能需要对QGIS进行仔细研究。

与您为ArcGIS描述的设置类似,QGIS也有这样的设置:


3
webgis.uster.ch示例非常好!
斯蒂芬·利德

2
我特别喜欢打印功能。
昏暗

6

从我日常使用的角度来讲(尽管这是我参与大多数项目的结果):

  • 文件地理数据库或ArcSDE地理数据库用于数据存储

PostGIS,SQLite和Shapefile,从最佳数据库到最可移植的格式。

  • ArcMap桌面可编辑数据并编译地图文档

使用QGIS进行空间操作,使用TileMill编译地图文档(假设您指的是地图文档的样式,数据源组合等)

  • ArcGIS Server创建Web服务

TileStream用于提供TileMill生成的地图,TileStache用于实时渲染。但是,鉴于使服务器保持在线和快速运行的经验,许多组织正在选择生成地图的途径,而不是实时服务。

  • ArcGIS Server JavaScript API从Web服务创建最终用户地图

如果您要避免进行额外的开发,请散发传单TurfJS用于浏览器中的分析任务。


很酷,谢谢你的提示。我会检查他们全力以赴
斯蒂芬带领

3
  • 文件地理数据库= PostGIS
  • Postgresgl后端中的ArcMap = QGIS和PostGIS
  • ArcGIS Server =地理服务器,地图服务器,QGIS服务器
  • 通过Web服务创建最终用户地图的ArcGIS Server JavaScript API =使用Mapfish打开图层。

可以使用stackinstaller从postgresql站点安装堆栈。

最简单的解决方案是使用Postgresql安装LAPP堆栈,其中包含Post GIS数据库以及可能调用Apache的tomcat服务器,最后一部分则需要域名或由ISP支持从服务器向网络提供数据。

为具有良好应用程序功能的精美GUI安装QGIS,并将其连接到Post GIS容器。在没有用于Intranet的apache和tomcat的情况下效果很好。

除非您基于云,否则您将需要使用apche安装的Web根来开发应用程序以通过Internet服务。

要在浏览器中进行开发以作为可在浏览器中调用的客户端,将需要更多的开发工作,并且需要诸如Open Layers和Mapfish之类的东西。这是最不痛苦的方法,它们也是许多其他选择和考虑因素。

对于桌面,这很好,但是要减去Mapfish和Open Layers。

这是逻辑上的样子。发布GIS> Postgresql> Geoserver> QGIS> Tomcat> Mapfish

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.