当前位置:网站首页>shp 解析的数据添加至pg空间库中
shp 解析的数据添加至pg空间库中
2022-08-06 05:24:00 【Giser_往事随风】
目录
前言:
上一文中我们已经解析好上传的shp.zip,获取到shp中的空间几何信息
本文中将记录如何存储至pg 的空间库 和从空间库中调取并加载至arcgis 地图中
(由于本人已经好久没有做java后台,只能简单叙述下)
一、存储至数据库
1、先将解析好的数据转成wkt格式数据

解析好的shp数据,可以看到每条数据中包含 geometry (存储空间信息), properties(存储属性信息)和默认的 type:"Feature"
转换成wkt格式:
//导入依赖
import WKT from 'terraformer-wkt-parser'
//调取方法
let wktData =WKT.convert(item.geometry);转换好的wkt格式数据:

2、后台编写:
sql语句新增一条几何信息:
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into GEO_LQ(GEO)
values (ST_GeomFromText(#{geo},4490))
</insert>其中GEO 为表中字段信息,geo为传入的字段值
主要是用到 ST_GeomFromText(xxx,4490) 这个空间函数
存储到pg库中的数据格式为:

参考资料:

二、数据库中调取并加载至web端arcgis 地图中
1、数据库调取:
需要用到 ST_AsText(geo) 和 st_asgeojson(geo) 这两个函数
第一个是将存储好的geo数据转换成wkt 格式的输出
第二个是将存储好的geo数据转换成geojson 格式的输出
这里我们用到的是第二个,如下所示:

2、将拿到的geojson数据加载至地图中
//导入转化的依赖
import ArcGIS from "terraformer-arcgis-parser"
//转化的方法 //需要将geojson转化成arcgis json 才能加载到arcgis 的地图中
geoToArcgis(geojson) {
let esrijson = ArcGIS.convert(geojson);
var geometry = geometryJsonUtils.fromJSON(esrijson);
return geometry;
},
//加载至地图中
let geometry = this.geoToArcgis(geojson);//geojson就是取到的geojson数据
geometry.spatialReference = new this.mapObj.SpatialReference({wkid: 4490});
let gra = new Graphic({
geometry: geometry,
symbol: xxSb
});
tempLayer.add(gra);写的简单,大家自行参考
边栏推荐
- MITRE ATT&CK报告发布 FortiEDR连续两年100%拦截恶意攻击
- 动态规划之最长连续递增序列
- 创建线程,线程状态转换,join,yield,stop,interrupt,wait方法
- Kindle access to HomeAssistant: Realize lock screen wallpaper to display device information in HA and obtain Kindle power in HA
- Distributed, Microservices, Cluster Concepts and Differences
- 3.3 关于代码植入和定位shellcode的思考
- 践行企业社会责任 Fortinet首次发布《可持续发展报告》
- 统计字符串中英文字母、空格、数字和其它字符的个数.读取文件中的学生信息,计算出考试的平均分。创建一个Student类的数组,封装5个学生的信息,按指定条件查找学生.计算当前时间距明年春节还有多长时间。
- 判断某一天是当年的第几天,计算油耗情况,设s=1*2*3*4*5*……*n,求s不大于400000时最大的n。拆分数字,素数,将三个整数按从小到大排序,回文数,判断三个边长能否组成三角形。判断水仙花数
- Summary of mysql server parameter settings
猜你喜欢

Fortinet发布2022年安全趋势预测,威胁将蔓延整个攻击面

Cesium 填坑之路

geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (三)(小白必备:超详细教程)

LVS load balancing server construction

LVS负载均衡服务器搭建

首站圆满落幕!Fortinet Accelerate 2022中国区全国路演盛大起航

MITRE ATT&CK报告发布 FortiEDR连续两年100%拦截恶意攻击

4.1 脚本病毒编写实验

Fortinet :《2021 年OT与网络安全现状报告》之「实践解读」

离线安装pip报错-gbk‘ codec can‘t encode character解决方法
随机推荐
what is an API
线程同步方法
openstack各种服务的管理
最深入全面讲解高可用 Redis 服务架构分析与搭建——太厉害了
响应式布局
Explain in detail how to install Home Assistant Supervised on Raspberry Pi to make smart devices at home smarter
判断某一天是当年的第几天,计算油耗情况,设s=1*2*3*4*5*……*n,求s不大于400000时最大的n。拆分数字,素数,将三个整数按从小到大排序,回文数,判断三个边长能否组成三角形。判断水仙花数
解密navicate保存的数据库连接密码
arcpy将本地shape发布成arcgis server 的mapserver
External Interrupts and Timers
勒索软件攻击防御的9件事
Raspberry Pi official system cancels the pi user, how to initialize the default user and connect SSH without a display?
shell之if条件语句case语句
LVS虚拟服务器中负载均衡玩法
MySql 数据表结构优化总结
Sprinig Boot + Redis 实现接口幂等性,写得太好了
高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告
LAMP+DISCUZ论坛搭建流程
Docker quickly installs & builds Mysql environment
antdesign 动态引入icon