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"
)



相关文章
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
226 0
|
20天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
120 68
|
17天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
1月前
|
SQL 关系型数据库 MySQL
|
1月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
27 2
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
124 1
|
1月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
177 10
|
1月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
128 5