bat脚本自动扫描制定文件夹下shp文件,并导入数据库,然后执行空间操作

简介:

GIS地图功能是现在越来越多项目的标配,但是商业的的arcgis软件太贵,开源的又有各种复杂的配置,如何简化这种配置呢,那就是使用脚本扫描知道文件夹下的文件,把扫描到的shp数据导入指定的空间数据库,然后对数据库中的不同表格执行不同的空间操作。

@echo off
echo pms map data input
set PSQLPATH="C:\Program Files (x86)\PostgreSQL\9.2\bin"
echo %PSQLPATH%
set filePath="F:\map\filePath"

 for /r %filePath% %%i in (*.shp) do (
	%PSQLPATH%\shp2pgsql.exe -c -W "GBK" %%~dpni %%~ni | %PSQLPATH%\psql.exe "dbname=dbName port=5432 user=postgres password=******" 
 )


for /r %filePath% %%i in (*daolu.shp) do (
	echo ALTER TABLE %%~ni ADD COLUMN source integer; > topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN target integer; >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN length double precision; >> topology.sql
	echo CREATE INDEX %%~ni_sidx ON %%~ni^("source"^); >> topology.sql
	echo CREATE INDEX %%~ni_tidx ON %%~ni^("target"^); >> topology.sql
	echo update %%~ni set length = st_length^(geom^); >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN reverse_cost double precision; >> topology.sql
	echo UPDATE %%~ni SET reverse_cost = length; >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN x1 double precision; >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN y1 double precision; >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN x2 double precision; >> topology.sql
	echo ALTER TABLE %%~ni ADD COLUMN y2 double precision; >> topology.sql
	echo UPDATE %%~ni SET x1 = ST_x^(ST_PointN^(geom, 1^)^); >> topology.sql
	echo UPDATE %%~ni SET y1 = ST_y^(ST_PointN^(geom, 1^)^); >> topology.sql
	echo UPDATE %%~ni SET x2 = ST_x^(ST_PointN^(geom, ST_NumPoints^(geom^)^)^); >> topology.sql
	echo UPDATE %%~ni SET y2 = ST_y^(ST_PointN^(geom, ST_NumPoints^(geom^)^)^); >> topology.sql
	echo SELECT pgr_createTopology^('%%~ni', 0.00001, 'geom', 'gid'^); >> topology.sql
	%PSQLPATH%\psql.exe -h 127.0.0.1 -f topology.sql "dbname=pmsdb port=5433 user=postgres password=ABC1616abc"
)



相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
10 0
|
27天前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之文件存在但是数据库提示文件不存在如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
1月前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
1月前
|
SQL Java 数据库连接
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
17 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL | 数据库的管理和操作【表的增删改查】(二)
MySQL | 数据库的管理和操作【表的增删改查】(二)
|
5天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
12 1
|
14天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
SQL Java 数据库连接
springboot解析txt文件顺便加到数据库中(nohup文件)
springboot解析txt文件顺便加到数据库中(nohup文件)
111 1
|
1月前
|
SQL 编解码 数据库
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
13 1
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?