在此介绍用sql对超图的空间数据库(sdx)进行空间查询,优点如下:

1。超图推荐的方式是用iobject,此方法要引入iobject

2。超图另一个推荐的方式是用iserver的REST接口,但web接口缺点在于性能一般,尤其是返回数据比较多以及并发频繁的情况下性能不好

超图空间数据库支持多种数据库产品(DBMS),可这种方式只支持PostGIS,也即是下图的

PS:注意在超图sdx的体系,Postgresql和PostGIS是两种数据库,而开源空间数据库PostGIS依赖于postgresql,可以说空间数据库PostGIS也是postgresql,注意区别

PS:超图idesktop部分版本不支持PostGIS,例如我只在idesktop 9D java 2019(9.1.0)能成功使用

当超图PostGIS数据库建好后,建立好jdbc连接(本文略,总之按postgresql建连接就行),然后就可以用sql做空间查询,以及输出几何对象

sql中使用空间查询的“接口”跟开源空间数据库PostGIS是一样的,原理是超图PostGIS也兼容开源PostGIS的功能

开源PostGIS的空间查询接口遵循OpenGIS标准,以下是开源PostGIS的官方文档,有接口的详细说明:https://postgis.net/docs/manual-dev/reference.html

另外个人也可以baidu关键词:postgis查询,来找到相关文章

以下贴一些代码

    /**
* 属性查询
*
* @throws Exception
*/
private void attrQuery() throws Exception {
//属性查询
//例子:查询名称为f1的字段,值等于 面1 的要素(数据/行) //图层名
//sde数据库带空间属性的表叫图层,因此图层跟表类似
String layerName = "polygon1"; //获取默认数据库连接
Connection conn = JdbcConnConfigUtil.getDefaultConn();
//查询使用的是sql,就是普通的sql
//select至from之间是输出的字段,其中ST_AsText(smgeometry)是输出几何对象并转成wkt格式,smgeometry代表几何对象,ST_AsText是一个函数可以把几何对象转成wkt格式的字符串
//ST_开头的函数属于开源空间数据库PostGIS的功能,可以理解为写在sql语句里的一些函数,详细api在这https://postgis.net/docs/manual-dev/reference.html
String sql = "select f1,ST_AsText(smgeometry) as wkt" +
" from " + layerName + " t " +
//查询条件,本demo是属性查询因此跟一般sql一样
"where t.f1='面1'"; //查询代码,跟jdbc一样的用法
PreparedStatement pst = null;
ResultSet rs = null;
try {
pst = conn.prepareStatement(sql);
//执行查询
rs = pst.executeQuery();
//while循环变量查询结果
while (rs.next()) {
//通过字段索引获取字段值,注意:索引从1开始!!!!
//获取几何对象,wkt格式
//wkt格式既可以构建几何对象(如何构建后面有说),也可以输出到前端供前端使用
String wkt = rs.getString(2);
//获取普通字段的值
Long f1 = DataConvertUtil.strToLong(rs.getString(1));
}
} finally {
//关闭连接,清除各种对象
DbUtils.closeQuietly(conn, pst, rs);
}
}
 

超图supermap sdx数据库用sql实现空间查询的更多相关文章

  1. mysql数据库使用sql命令窗口查询的数据,改成sql语句导入到mysql数据库中

    1.查询语句为select * from t_table;导出的数据格式如下: 2.将数据文本备份,然后使用NOTEPAD++打开,然后只拷贝数据到新建txt中,然后进行如下替换: 1)将“ | ”分 ...

  2. 【数据库】sql连表查询

    SQL总结 连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union UNION 操作符用于合并两 ...

  3. Oracle 数据库常用SQL语句(2)查询语句

    一.SQL基础查询 1.select语句 格式:select 字段 from 表名; 2.where 用于限制查询的结果. 3.查询条件 > < >= <= = != 4.与 ...

  4. 3. SQL Server数据库状态监控 - 可用空间

    原文:3. SQL Server数据库状态监控 - 可用空间 数据库用来存放数据,那么肯定需要存储空间,所以对磁盘空间的监视自然就很有必要了. 一. 磁盘可用空间 1. 操作系统命令或脚本.接口或工具 ...

  5. Oracle数据库之SQL基础(一)

    主要内容:用户与表空间:表与约束:查询语句. 一.概述 Oracle安装:访问官网,下载 二.用户与表空间 在安装Oracle时在开始菜单里可以用sql puls登录oracle. ★1.系统用户 s ...

  6. 实例讲解Oracle数据库设置默认表空间问题

    实例讲解Oracle数据库设置默认表空间问题   实例讲解Oracle数据库设置默认表空间问题,阅读实例讲解Oracle数据库设置默认表空间问题,DBA们经常会遇到一个这样令人头疼的问题:不知道谁在O ...

  7. oracle数据库元数据SQL查询

    oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from ...

  8. 【数据库】SQL优化方法汇总

    最近在研究SQL语句的优化问题. 下面是从网上搜集的,有的地方有点老了,可是还是有很多可以借鉴的地方的. 如何加快查询速度? 1.升级硬件. 2.根据查询条件,建立索引,优化索引.优化访问方式,限制结 ...

  9. 用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法

    用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及 ...

随机推荐

  1. jquery中attr() & prop() 的区别与其实现方法

    $(function(){ $('#check').attr('checked'); // undefind ???一头雾水 }) 在jquery中 attr 本来就是用来设置或者获取属性的,可是上面 ...

  2. docker基于宿主机系统版本创建镜像

    这里讲如何定制自己centos镜像,仅供测试docker使用. A) 安装软件 yum -y install febootstrap B)下载镜像febootstrap -i bash -i wget ...

  3. lwip【6】LWIP使用经验

    LWIP使用经验 一 LWIP内存管理 LWIP的内存管理使用了2种方式:内存池memp和内存堆mem,如图1所示. 内存池的特点是预先开辟多组固定大小的内存块组织成链表,实现简单,分配和回收速度快, ...

  4. Python模块学习——optparse

    Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大 ...

  5. C++ 右值引用与移动操作

    右值引用和移动操作是C++11提出的新概念,通过这些操作,可以降低拷贝操作带来的消耗.先来简单介绍一下左值和右值. 左值一般指的是一个对象,或者说是一个持久的值,例如赋值的返回值.下标操作.解引用以及 ...

  6. 2-6 Flutter开发环境与Android开发环境设置实操(Windows)

    通常安装完AS后,sdk的目录 C:\Users\wjw\AppData\Local\Android\sdk 如果在这个目录下没有找到sdk的目录的话 Settings里面搜索sdk,找到Androi ...

  7. Linux Ubuntu下Jupyter Notebook的安装

    Jupyter Notebook, 以前又称为IPython notebook,是一个交互式笔记本, 支持运行40+种编程语言. 可以用来编写漂亮的交互式文档. 安装步骤: pip install - ...

  8. Unable to start services for VMware Tools

    vmware安装扩展工具报错的问题 vmware安装扩展工具报错Creating a new initrd boot image for the kernel.update-initramfs: Ge ...

  9. SetCapture到底是什么?

    函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一个线程创建的窗口上, ...

  10. linux下安装QQ等EXE文件

    安装好linux系统后,发现linux很多自带的软件用起来很不习惯,于是去网上下载QQ等在Windows下经常使用的exe文件. 发现这些文件无法安装,在网上找了一些解决办法,须下载wine,然后才可 ...