PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。



刚开始学习了一些SQL语句,尝试实现要素图层的空间分析:

  1. --读取要素的几何信息(按照WKT描述)
    select ST_AsText(geom) from dzzg where bsm=2715;
  2. select ST_AsText(geom) from ckyd where bsm=420;
  3. --求出dzzg.bsm2715的要素和cykd.bsm420的要素的相交部分
  4. select ST_Intersection(ST_GeomFromText(ST_astext(a.geom)),ST_GeomFromText(ST_astext(b.geom)))
  5. FROM dzzg a INNER JOIN ckyd b on ST_Intersects(ST_GeomFromText(ST_astext(a.geom)),ST_GeomFromText(ST_astext(b.geom)))
  6. where a.bsm=2715 and b.bsm=420
  7.  
  8. //ST_Intersection表示求交
  9.  
  10. //红色部分表示判断相交 on ST_Intersects

  1. --success
  2. --选出dzzgckyd两个图层的相交部分
  3. --只选择前5 不然需要很多时间
  4. SELECT b.bsm As bbsm, p.bsm As pbsm,
  5. ST_Intersection(ST_GeomFromText(ST_AsText(b.geom)), ST_GeomFromText(ST_AsText(p.geom))) As intersect_bp
  6. FROM dzzg b INNER JOIN ckyd p ON ST_Intersects(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
  7. --WHERE ST_Overlaps(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
  8. LIMIT 5
  9. --从dzzg层中选出满足以下条件的要素,并显示相交部分
  10. --1、标识码大于2000 [感觉有部分的geom值有问题,所以限定一下搜索范围]
  11. --2、与ckyd中标识码为420的面相交
  12. select a.bsm,
  13. st_astext(st_intersection(st_geomfromtext(st_astext(a.geom)),st_geomfromtext(st_astext(b.geom)))) as intersection
  14. from dzzg a inner join ckyd b ON ST_Intersects(ST_GeomFromText(ST_AsText(a.geom)),ST_GeomFromText(ST_AsText(b.geom)))
  15. where b.bsm=420 and a.bsm>2000
  16. --查询与已知面相交的图形
  17. SELECT bsm FROM dzzg where
  18. ST_Intersects(
  19. 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
  20. --创建表
  21. create table test(id1 int4,id2 int4);
  22. select addgeometrycolumn('public','test','shape',4610,'POLYGON',2); //添加几何字段,4610表示坐标系,2表示二维要素
  23. SELECT b.bsm As bbsm, p.bsm As pbsm,
  24. ST_AsText(ST_Intersection(ST_GeomFromText(ST_AsText(b.geom)), ST_GeomFromText(ST_AsText(p.geom)))) As intersect_bp
  25. FROM dzzg b INNER JOIN ckyd p ON ST_Intersects(ST_GeomFromText(ST_AsText(b.geom)),ST_GeomFromText(ST_AsText(p.geom)))
  26. LIMIT 3
  27. --插入记录
    --函数st_geomfromtext 表示从“WKT描述”
    构建几何图形
  28.  
  29. insert into test(id1,id2,shape)
  1. values(
  2. 21,699,st_geomfromtext('POLYGON((102.481862440151 24.9381407958162,
  3. 102.480064171822 24.9380431117968,102.480009386288 24.9381143096393,
  4. 102.481862440151 24.9381407958162))',4610)
  5. );--删除已知表
  6. drop table ckyd

初步学习,持续更新......

参考:http://blog.sina.com.cn/s/blog_722b6a020102v5m9.html



PostGIS 通过SQL语句实现空间分析【入门级】的更多相关文章

  1. 戈多编程-小谈sql语句的优化分析

    在sqlserver大数据查询中,避免不了查询效率减慢,暂且抛弃硬件原因和版本原因,仅从sql语句角度分析. 一. sql 语句性能不达标,主要原因有一下几点: 1. 未建索引,检索导致全表扫描 2. ...

  2. 解决死锁之路3 - 常见 SQL 语句的加锁分析 (转)

    出处:https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html 这篇博客将对一些常见的 SQL 语句进行加锁 ...

  3. [转]SQL语句优化技术分析

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  4. SQL语句优化技术分析

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  5. SQL语句优化技术分析 整理他人的

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  6. sql语句的优化分析

    开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索 ...

  7. 【转】sql语句的优化分析

    开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索 ...

  8. 【面试突击】- sql语句的优化分析

    开门见山,问题所在 原文地址:http://www.cnblogs.com/knowledgesea/p/3686105.html sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种 ...

  9. DLA SQL分析函数:SQL语句审计与分析的利器

    1. 简介 Data Lake Analytics(https://www.aliyun.com/product/datalakeanalytics)最新release一组SQL内置函数,用来进行SQ ...

随机推荐

  1. unzip失败,unzip:报错End-of-central-directory signature not found、scp:报错no space left on device

    文章目录 问题 解决 拓展 问题 通过rz命令传本地文件到本地服务器,失败. 通过scp命令尝试报错: no space left on device 意思是目的机器内存不够用了,但是传过去了,但是没 ...

  2. 4. Jmeter主界面的介绍

    上篇文章我们已经介绍过如何安装Jmeter.那么在本篇文章我们将要介绍Jmeter主界面有哪些功能.我们双击jmeter.bat,如下图所示(注意我这是jmeter5.0版本): 我们将Jmter主界 ...

  3. POJ 3304 Segments (判断直线与线段相交)

    题目链接:POJ 3304 Problem Description Given n segments in the two dimensional space, write a program, wh ...

  4. 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. ...

  5. 常用css3属性的ie兼容查看

    记录一下关于css3的各种常用属性对ie各版本浏览器的兼容程度: 最低可兼容ie7 最低可兼容ie8 最低可兼容ie9 最低可兼容ie10 position:fixed clip E:first-le ...

  6. 1-Navicat无法远程连接Ubuntu上的MySQL(已解决)

    转发自: https://jingyan.baidu.com/article/4d58d54156ff069dd4e9c085.html

  7. 监控数据库SqlServer

    监控数据库的连接数select COUNT( * ) from master.dbo.sysprocesses select COUNT( * ) from master.dbo.sysprocess ...

  8. http/tcp/ip/端口

    http是www服务器和本地浏览器之间传输超文本的协议. 每一台机器都有一个属于自己的ip地址,计算机也需要知道是哪个程序来接受信息,这里也就引入了端口号,可以简单地理解每一个程序都有一个唯一的端口号 ...

  9. html input 上capture 参数在 安卓 苹果上的异同

    安卓上 <input type="file" accept="image/*" capture="camera"> //只调用相 ...

  10. break , continue 和 标签 跳出循环

    break跳出代码块或循环 var i = 0: while ( i <= 10){ console.log(' i '); i ++; if ( i === 5 ) break; }// 0 ...