我需要构建一个WebGIS服务。我在Linux平台上工作,使用开源软件。
我现在有一些地理信息系统的经验(PostGIS,QGIS),但是GIS发布对我来说还是新的,尽管我以前对非GIS服务器(Apache/Tomcat,html / Java / MySQL)有过一些经验。
这个维基百科图仍然是我至今发现的最好的解释。到目前为止,据我了解,WebGIS堆栈的各个组件的角色如下:
但是现在,GeoServer在这里面适合什么地方呢?它到底是做什么的?我相信它将地理信息系统数据转换成适合于网络发布的其他格式(WMS / WFS /等等)。但是如何与数据库、应用服务器、HTTP服务器和客户端库集成呢?
MapServer和QGIS扮演着与GeoServer相同的角色吗?所以我猜你会选择一个还是另一个?
我必须在web上发布的GIS数据首先是在一个现有的离线服务器上准备的,它使用Postgreql/PostGIS数据库进行处理(大量的GIS计算)。一旦它准备好了,它就可以被提取、传输和加载到另一台服务器上,负责网络发布。
我现在需要设置的是这个web服务器。我有一个单一的地图,有一个单一的层,有大约200000个特征,它可能会在未来扩大到100万。
该网站应具有某些关键功能:
到目前为止,我一直在使用以下组件,并做出了以下选择:
请注意,如果我确信这是正确的选择,我可能会将这些组件中的一个更改为其他组件,但这将意味着放弃几周的工作,所以我更愿意保留它们。
我的理解是,我现在必须:
发布于 2020-06-29 16:11:16
最后,我做的是:
发布于 2020-09-11 04:15:40
嗯看起来不错。Geoserver可能比QGIS服务器更加成熟,可能会给您提供更强的扩展/负载平衡等方面的健壮性和灵活性。但是我还没有在规模上实现QGIS,所以我的观点有点推测。
传单也是一个很好的客户端工具,是我的首选,而不是Openlayers,或者其他。不过,再说一遍--这只是个人喜好而已!
WMS本质上提供了简单的地图和单功能查询功能.WFS将为您提供编辑/多记录查询等,StackExchange文章 -他们也使用您的相同的图表!
关于您的关系图,它建议所有对数据存储的访问都必须通过“中间件”进行。这不一定总是100%的真实或要求。另一种架构方法是通过直接访问数据库实现客户端映射。这里有一篇好文章,客户端映射
我看到了使用略有不同的编程语言的类似方法,其中SQL请求是使用python发出的,而python是通过javascript (与您的Leaflet.js很好地结合在一起)公开的。干净的东西啊!
或者,为什么不两者兼得呢!您可以将上面提到的方法与Geoserver实现结合起来。Geoserver可以处理简单的WMS和地图,而嵌入式可以处理复杂的客户端数据库查询(比如搜索或数据编辑)。就我个人而言,通过特性服务--尤其是大型数据编辑--来处理数据事务充满了问题。
当然,所有这些都取决于您的业务需求。
https://softwarerecs.stackexchange.com/questions/74758
复制相似问题