前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用线裁剪面之-PostGIS版本

用线裁剪面之-PostGIS版本

作者头像
数据处理与分析
发布2019-07-31 16:37:51
1.3K0
发布2019-07-31 16:37:51
举报
文章被收录于专栏:数据处理与分析
地理数据处理的常用工具

如果经常需要处理地理数据,大多数人都无法绕开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脚本
代码语言:javascript
复制
INSERT  INTO public.out(geom) SELECT (ST_Dump(ST_SPLIT(geom,geom_c))).geom  FROM  public.polygon,public.line WHERE ST_Intersects(public.line.geom_c,public.polygon.geom);
脚本执行结果

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

只有20毫秒!

执行后的结果数据

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

说点啥呢

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

一只努力学习的GISer

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 地理数据处理的常用工具
  • PostGIS可以做什么
  • 操作示例
    • 测试数据
      • 要完成的事情
        • 用到的SQL脚本
          • 脚本执行结果
            • 执行后的结果数据
            • 说点啥呢
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档