本文档译自:
https://opensource.com/article/20/4/gis-kubernetes
pg_tileserv和pg_featureserv使开发人员可以更轻松地向Kubernetes应用程序添加位置服务。
地理信息系统(GIS)的空间数据无处不在。从使我们的生活变得更好,更方便的智能手机,到增加农民粮食产量的同时降低成本的精准农业,无论我们是否意识到,空间数据都几乎触及了我们生活的每个部分。
空间数据增加的同时带来了开放的空间数据集,人们可以使用这些数据集来构建各种新的应用程序。但是,这些类型的数据集并非总是让人轻易使用的。而且,由于某些地理数据的大小,可能难以将它们引入现代应用程序部署框架中(如Kubernetes)。
为了解决这些问题,Crunchy Data最近发布了两个新的开源项目pg_tileserv和pg_featureserv,用以开发 云原生 空间应用程序更加容易。这些项目是开源Crunchy Spatial的一部分,可帮助开发人员将健壮的PostGIS地理空间数据库扩展扩展到PostgreSQL,而无需编写复杂的SQL语句。
那么pg_tileserv和pg_featuresev是什么,它们如何使开发人员更轻松地向Kubernetes应用程序添加位置服务,这对空间应用程序的未来意味着什么?
传统GIS与现代空间微服务
传统上,当组织或个人使用空间数据时,他们从以经非常成熟的GIS产品开始。有许多高质量的开源GIS产品(QGIS,GeoServer,GeoNode等),但是它们可能与现代的 云原生 软件设计方法不符。
Kubernetes的普及给这些很久之前的应用程序带来了自动化和部署方面的挑战,因为它们需要大量的手动配置,例如,在添加和修改数据源的时候。在许多设置中,这些空间应用程序必须存在于Kubernetes之外,并且无法利用其提供的许多便利。
相反,现代空间服务应用它们正在处理和提供服务的空间数据驱动。他们应与现代软件开发实践保持一致,并进行有效扩展,并且能轻松的与开发人员工作集成。
具有空间意识的应用程序还需要确保它们可以处理空间数据的独特特征(例如,几何形状,投影等)。除非已经有一个功能强大的数据库来为您完成大部分工作,否则要在独立的微服务中完成所有这些工作可能是一项挑战。这就是pg_tileserv和pg_featureserv的帮助,因为这两个项目都利用了PostGIS(PostgreSQL的开源地理空间扩展)的功能,通过简单的REST框架提供高级的空间功能。
使用pg_tileserv生成地图矢量瓦片
pg_tileserv是用Go语言编写的轻量级矢量切片服务器,可以直接从PostGIS 生成矢量切片。它通过以最佳实践方法实现ST_AsMVT()函数(将HTTP请求转换为数据库)来实现此目的。它包含一些常用的默认值,这些默认值使您可以将数据库连接URL传递到服务器,并且可以立即启动并运行。没有安装和配置的重量级软件,它是为云原生GIS应用程序设计的。
有关如何使用它的特定示例,请查看我们的博客文章有关使用PostgreSQL函数的图块服务和空间图块服务。(https://info.crunchydata.com/blog/crunchy-spatial-tile-serving-with-postgresql-functions)
用pg_featureserv注释地图
pg_featureserv是用Go编写的轻量级服务,使您可以直接在PostGIS之外提供功能。它实现了OGC API的功能,并为PostGIS中包含的空间数据和功能提供了标准的REST端点。就像pg_tileserv一样,没有要安装的重量级软件。只需将数据库连接URL传递到您的PostGIS数据库,就可以开始运行了。有关如何使用它的特定示例,请查看有关查询空间特征的文章。
专注于空间数据,而不是GIS
凭借我们在开发PostGIS和构建PostGIS支持的应用程序方面的深厚背景,我们希望帮助开发人员以易于部署,扩展和维护的方式来释放空间数据的所有价值。如pg_tileserv和pg_featureserv的源代码所示,我们只是利用了PostGIS中已经存在的功能。这使开发人员可以快速将空间数据添加到其应用程序中,并使数据人员专注于数据。
这种方法的好处是:
更快的性能,因为PostgreSQL和PostGIS为您代劳
维护较少的配置,因为数据库结构就是配置
通过设计,它从一开始就以企业的规模在云中运行
更新面向客户应用程序的时间更短-当您更新数据库中的数据时,您的应用程序将立即更新
能够将更多精力集中在维护数据和为用户提供价值上,而不需要花太多精力在软件上
同样,由于这些服务响应数据库的配置,因此它们还公开了数据库中包含的功能。数据人员可以开发数据库中的功能,而这些功能可以立即通过REST API来使用,而不必开发其数据功能以后再将它们集成到软件中。该软件开始淡出后台,因此人们可以专注于数据。
可以这么说,我们对这些新的地理空间服务感到非常兴奋,我们当然希望您对它们提供反馈。随时检查pg_tileserve和pg_featureserv,尝试使用PostgreSQL Operator将它们与PostGIS数据库一起部署,并在评论中分享您的反馈。