PostGIS 通过SQL语句实现空间分析【入门级】
PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。
刚开始学习了一些SQL语句,尝试实现要素图层的空间分析:
- --读取要素的几何信息(按照WKT描述)
select ST_AsText(geom) from dzzg where bsm=2715;- select ST_AsText(geom) from ckyd where bsm=420;
- --求出dzzg.bsm为2715的要素和cykd.bsm为420的要素的相交部分
- select ST_Intersection(ST_GeomFromText(ST_astext(a.geom)),ST_GeomFromText(ST_astext(b.geom)))
- FROM dzzg a INNER JOIN ckyd b on ST_Intersects(ST_GeomFromText(ST_astext(a.geom)),ST_GeomFromText(ST_astext(b.geom)))
- where a.bsm=2715 and b.bsm=420
- //ST_Intersection表示求交
- //红色部分表示判断相交 on ST_Intersects
- --success
- --选出dzzg和ckyd两个图层的相交部分
- --只选择前5个 不然需要很多时间
- SELECT b.bsm As bbsm, p.bsm As pbsm,
- ST_Intersection(ST_GeomFromText(ST_AsText(b.geom)), ST_GeomFromText(ST_AsText(p.geom))) As intersect_bp
- FROM dzzg b INNER JOIN ckyd p ON ST_Intersects(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
- --WHERE ST_Overlaps(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
- LIMIT 5
- --从dzzg层中选出满足以下条件的要素,并显示相交部分
- --1、标识码大于2000 [感觉有部分的geom值有问题,所以限定一下搜索范围]
- --2、与ckyd中标识码为420的面相交
- select a.bsm,
- st_astext(st_intersection(st_geomfromtext(st_astext(a.geom)),st_geomfromtext(st_astext(b.geom)))) as intersection
- from dzzg a inner join ckyd b ON ST_Intersects(ST_GeomFromText(ST_AsText(a.geom)),ST_GeomFromText(ST_AsText(b.geom)))
- where b.bsm=420 and a.bsm>2000
- --查询与已知面相交的图形
- SELECT bsm FROM dzzg where
- ST_Intersects(
- ST_GeomFromText('POLYGON((102.463 24.873,102.465 24.872,102.463 24.872,102.463 24.873))'), ST_GeomFromText(ST_AsText(geom))) and bsm>2700
- --创建表
- create table test(id1 int4,id2 int4);
- select addgeometrycolumn('public','test','shape',4610,'POLYGON',2); //添加几何字段,4610表示坐标系,2表示二维要素
- SELECT b.bsm As bbsm, p.bsm As pbsm,
- ST_AsText(ST_Intersection(ST_GeomFromText(ST_AsText(b.geom)), ST_GeomFromText(ST_AsText(p.geom)))) As intersect_bp
- FROM dzzg b INNER JOIN ckyd p ON ST_Intersects(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
- LIMIT 3
- --插入记录
--函数st_geomfromtext 表示从“WKT描述”构建几何图形- insert into test(id1,id2,shape)
- values(
- 21,699,st_geomfromtext('POLYGON((102.481862440151 24.9381407958162,
- 102.480064171822 24.9380431117968,102.480009386288 24.9381143096393,
- 102.481862440151 24.9381407958162))',4610)
- );--删除已知表
- drop table ckyd
初步学习,持续更新......
参考:http://blog.sina.com.cn/s/blog_722b6a020102v5m9.html
PostGIS 通过SQL语句实现空间分析【入门级】的更多相关文章
- 戈多编程-小谈sql语句的优化分析
在sqlserver大数据查询中,避免不了查询效率减慢,暂且抛弃硬件原因和版本原因,仅从sql语句角度分析. 一. sql 语句性能不达标,主要原因有一下几点: 1. 未建索引,检索导致全表扫描 2. ...
- 解决死锁之路3 - 常见 SQL 语句的加锁分析 (转)
出处:https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html 这篇博客将对一些常见的 SQL 语句进行加锁 ...
- [转]SQL语句优化技术分析
一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...
- SQL语句优化技术分析
一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...
- SQL语句优化技术分析 整理他人的
一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...
- sql语句的优化分析
开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索 ...
- 【转】sql语句的优化分析
开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索 ...
- 【面试突击】- sql语句的优化分析
开门见山,问题所在 原文地址:http://www.cnblogs.com/knowledgesea/p/3686105.html sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种 ...
- DLA SQL分析函数:SQL语句审计与分析的利器
1. 简介 Data Lake Analytics(https://www.aliyun.com/product/datalakeanalytics)最新release一组SQL内置函数,用来进行SQ ...
随机推荐
- unzip失败,unzip:报错End-of-central-directory signature not found、scp:报错no space left on device
文章目录 问题 解决 拓展 问题 通过rz命令传本地文件到本地服务器,失败. 通过scp命令尝试报错: no space left on device 意思是目的机器内存不够用了,但是传过去了,但是没 ...
- 4. Jmeter主界面的介绍
上篇文章我们已经介绍过如何安装Jmeter.那么在本篇文章我们将要介绍Jmeter主界面有哪些功能.我们双击jmeter.bat,如下图所示(注意我这是jmeter5.0版本): 我们将Jmter主界 ...
- POJ 3304 Segments (判断直线与线段相交)
题目链接:POJ 3304 Problem Description Given n segments in the two dimensional space, write a program, wh ...
- centos7下利用nfs搭建wordpress
拓扑环境 web1 192.168.198.110 web2 192.168.198.120 mysql 192.168.198.130 DNS 192.168.198.10 NFS 192.168. ...
- 常用css3属性的ie兼容查看
记录一下关于css3的各种常用属性对ie各版本浏览器的兼容程度: 最低可兼容ie7 最低可兼容ie8 最低可兼容ie9 最低可兼容ie10 position:fixed clip E:first-le ...
- 1-Navicat无法远程连接Ubuntu上的MySQL(已解决)
转发自: https://jingyan.baidu.com/article/4d58d54156ff069dd4e9c085.html
- 监控数据库SqlServer
监控数据库的连接数select COUNT( * ) from master.dbo.sysprocesses select COUNT( * ) from master.dbo.sysprocess ...
- http/tcp/ip/端口
http是www服务器和本地浏览器之间传输超文本的协议. 每一台机器都有一个属于自己的ip地址,计算机也需要知道是哪个程序来接受信息,这里也就引入了端口号,可以简单地理解每一个程序都有一个唯一的端口号 ...
- html input 上capture 参数在 安卓 苹果上的异同
安卓上 <input type="file" accept="image/*" capture="camera"> //只调用相 ...
- break , continue 和 标签 跳出循环
break跳出代码块或循环 var i = 0: while ( i <= 10){ console.log(' i '); i ++; if ( i === 5 ) break; }// 0 ...