logo资料库

PostGIS空间数据表建立及Cesium可视化空间数据.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
1创建空间数据库,导入数据
1.1在安装了postgis插件后,创建数据库实例,如pg_building
1.2将数据库扩展支持空间数据存储,在数据库实例上执行sql,如下:
1.3使用PostGIS工具,将建筑物面shpfile文件导入空间数据库
1.4在Navicat中修改表的属性字段类型
2空间数据访问
2.1使用QGIS 预览空间数据
2.2使用nodejs 访问postgis空间数据库,返回geojson格式空间数据
2.3Postgis sql 空间关系常用函数
1 创建空间数据库,导入数据 1.1 在安装了 postgis 插件后,创建数据库实例,如 pg_building 1.2 将数据库扩展支持空间数据存储,在数据库实例上执行 sql, 如下: pg_building=# CREATE EXTENSION postgis; CREATE EXTENSION pg_building=# CREATE EXTENSION postgis_topology; CREATE EXTENSION pg_building=# CREATE EXTENSION fuzzystrmatch ; CREATE EXTENSION pg_building=# CREATE EXTENSION postgis_tiger_geocoder; CREATE EXTENSION
1.3 使用 PostGIS 工具,将建筑物面 shpfile 文件导入空间数据 库 1.4 在 Navicat 中修改表的属性字段类型
2 空间数据访问 2.1 使用 QGIS 预览空间数据 打开 QGIS3.4 建立空间库连接,填写如下信息
双击空间图层表,即可以实现数据可视化
2.2 使用 nodejs 访问 postgis 空间数据库,返回 geojson 格式 空间数据 注意:geojson 属性字段名称都使用小写!!! 在 SmartTileServer 工程中,postgres 基础访问类 PGUtil,使用的 是池化连接。
在 Cesium 中,使用 GeoJsonDataSource 加载网络数据。
2.3 Postgis sql 空间关系常用函数 1) 几何类型转换函数 //wkt 转 geometry:st_geomfromtext(wkt) select ST_GeomFromText('Point(122 33)') //geometry 转 wkt:st_astext(geometry) select ST_AsText(ST_GeomFromText('Point(122 33)')) //geometry 转 geojson:st_asgeojson(geometry) select ST_AsGeoJson(ST_GeomFromText('Point(122 33)')) //geojson 转 geometry:st_geomfromgeojson(geojson) select
ST_GeomFromGeoJson(ST_AsGeoJson(ST_GeomFromText('Point(122 33)'))) //geometry 转 geohash:st_geohash(geometry) select ST_GeoHash(ST_GeomFromText('Point(116 39)')) //geohash 转 geometry:st_geomfromgeohash select ST_GeomFromGeoHash('wwfmzesx7yvjugxr3nzv') 2) 几何关系函数  获取两个几何对象间的距离 ST_Distance(geometry, geometry)  如 果 两 个 几 何 对 象 间 距 离 在 给 定 值 范 围 内 , 则 返 回 TRUE ST_DWithin(geometry, geometry, float)  判断两个几何对象是否相等  (比如 LINESTRING(0 0, 2 2)和 LINESTRING(0 0, 1 1, 2 2)是 相同的几何对象) ST_Equals(geometry, geometry)  判断两个几何对象是否分离 ST_Disjoint(geometry, geometry)  判 断 两 个 几 何 对 象 是 否 相 交 ST_Intersects(geometry, geometry)  判 断 两 个 几 何 对 象 的 边 缘 是 否 接 触 ST_Touches(geometry, geometry)  判 断 两 个 几 何 对 象 是 否 互 相 穿 过 ST_Crosses(geometry, geometry)  判断 A 是否被 B 包含 ST_Within(geometry A, geometry B)
分享到:
收藏