首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用线裁剪面之-PostGIS版本

地理数据处理的常用工具

如果经常需要处理地理数据,大多数人都无法绕开ArcGIS这套软件,ArcGIS以其强大的功能与稳定性著称,是当之无愧的GIS界大拿。偶尔会有些人会接触到FME或QGIS等软件。但地理数据处理,是一个广阔的世界,除此之外,亦有很多优秀的软件可供我们使用,或者你可以写些代码来进行数据的处理与分析,今天主要介绍空间数据库——PostGIS。

PostGIS可以做什么

可能有很多人(包括我)都会觉得,数据库嘛,不就是存数据的嘛,怎么还跟数据处理扯上关系了?因为这种常识的存在,导致我一直只是用postgresql来存储数据,数据的处理与分析也都是用其他的工具。直到有一天,单位的小哥哥看我处理数据,我们在交流中我发现,原来PostGIS有这么多的函数,有这么多的功能,竟然这么强大。从空间分析运算,到属性处理,PostGIS都有相关的函数,并且在数据库中的这些运算,非常的高效。这么说吧,如果要更新某个表的某个字段(我觉得表越大,在数据库进行计算的优势越明显),分别用ArcMap与pg来做,可能用ArcMap软件打开属性表的时间,PostGIS都已经算完了,没办法,就是这么高效!我这几天测试过,将一张有近2万条点数据的空间表的XY信息提取到字段,使用pg,只需要300ms左右,可以说,是非常的高效了。

操作示例测试数据

前两天有朋友在群里闻到一个问题,如何用线裁剪面?据我了解,无论是ArcGIS还是FME都没有什么函数或转换器能直接实现线裁开面的功能。以下为测试数据:

我绘制了三条线与五个面,作为测试数据。

线状数据存在line表中,存储几何的字段为geom_c;面状数据存在polygon表中,存储几何的字段为geom;裁剪后的结果数据存在out表中。

要完成的事情

使用这三条线,裁剪开这五个面。

用到的SQL脚本

脚本执行结果

本来觉得挺简单的事情,边写边查,竟然写了几个小时,一转眼就天就黑了。但执行却是非常快:

只有20毫秒!

执行后的结果数据

可以看到,所有面都被正确的裁剪开了,结果完全符合预期。PG干的漂亮!

说点啥呢

做数据处理,应该尽量去掌握多种数据处理工具,这样才不会在工作中手忙脚乱。不能什么时候都靠一种工具,这样很容易会在工作中遇到问题。个人觉得应该至少有一种工具可以用到极致,然后再有几个比较了解的工具,然后慢慢的形成自己的技术体系。

一只努力学习的GISer

欢迎加入QQ群进行交流

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180908G1CEDG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券