我是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产品是什么?

评论

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

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

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

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

@whuber,对不起,我应该详细说明。关于FOSS的一系列博客也可以促进FOSS4G会议。我建议这样做的原因之一是,让人们有机会平等地参加Esri会议的促销活动。

#1 楼

要存储数据,需要提到的前两个选择是PostGIS和SpatiaLite。


SpatiaLite是具有空间功能的SQLite数据库,
意味着它是基于文件的,紧凑的,并且快速。
PostGIS是PostgreSQL数据库上的空间功能。
意味着它非常强大,具有处理大型数据集的能力,可以高效地处理复杂的查询。

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

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

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


GeoServer可能是最容易上手的,因为它具有非常直观的Web界面。 GeoServer可以完成您想要的大多数事情。它可以为WMS WFS Tiled服务提供服务,等等。它全部用Java编写。
MapServer用C编写,我认为可以说这是WMS服务之王。至少它赢得了去年FOSS4G会议的枪战(ESRI不敢参加)。 Mapserver是通过“地图文件”配置的,我不知道任何图形界面。但是
对于认真的wms服务来说,这是一个非常有趣的选择。
对于可编辑的wfs服务,您之前已经提到过GeoServer,但也是TinyOWS。 TinyOWS是一个用C编写的小型wfs服务器。最近,
它已经与Mapserver集成在一起,因为您可以对两者使用相同的
地图文件。

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

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

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

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

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

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

评论


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

–斯蒂芬·李
2011年8月7日在23:19

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

–马特·威尔基
2011年9月12日15:57

#2 楼

Nicklas已经指出了最受欢迎的开源软件包。如果您对桌面和服务器GIS的紧密结合感兴趣,则可能希望对QGIS有更深入的了解。

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



用于数据存储的PostGIS

QGIS Desktop编辑数据并创建地图文档

QGIS Server到创建Web服务

QGIS Server是在Windows,Linux和Mac上运行并使用Apache的WMS&WFS服务器。
通过简单地放置QGIS(桌面)项目文件即可创建服务。放入正确的服务器文件夹。 (示例:http://linfiniti.com/2010/08/qgis-mapserver-a-wms-server-for-the-masses/)
教程可以在http://www.qgis.org上找到/ wiki / QGIS_Server_Tutorial





QGIS客户端创建Web前端

客户端基于OpenLayers和GeoExt。
示例:http://webgis.uster.ch/





评论


webgis.uster.ch示例非常好!

–斯蒂芬·李
2011年8月8日,下午4:23

我特别喜欢打印功能。

– Underdark♦
11年8月8日在10:18

#3 楼

从我日常使用的角度讲(尽管我参与了大多数项目使它显得有些生气):


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

PostGIS,SQLite和Shapefile,从最佳数据库到最便携式格式。


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

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


ArcGIS Server创建Web服务

TileStream用于提供TileMill生成的地图的服务,或TileStache用于实时渲染的服务。但是,鉴于使服务器保持联机和快速的经验,许多团体正在采用生成地图而不是实时服务的方式。


ArcGIS Server JavaScript API创建最终用户地图如果您想避免进行额外的开发,请从Web服务中下载

传单。用于浏览器内分析任务的TurfJS。

评论


很酷,谢谢你的提示。我会全部检查

–斯蒂芬·李
2011年8月9日23:21

#4 楼


文件地理数据库= PostGIS
ArcMap =在Postgresgl后端中具有PostGIS的QGIS
ArcGIS Server =地理服务器,地图服务器,QGIS
服务器
ArcGIS Server JavaScript API创建最终用户来自
web服务= Mapfish开放层。

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

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

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

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

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

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

这里是看起来很合逻辑。发布GIS> Postgresql> Geoserver> QGIS> Tomcat> Mapfish