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"
)
时间: 2024-08-27 15:52:59

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

java实现读取、删除文件夹下的文件

  本文给大家分享的是java实现读取.删除文件夹下的文件,其中File.delete()用于删除"某个文件或者空目录"!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,有需要的小伙伴可以参考下. java实现读取.删除文件夹下的文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

百度开放云的bos存储,同一文件夹下的文件有个数限制么

问题描述 百度开放云的bos存储,同一文件夹下的文件有个数限制么 10C 如题:百度开放云的bos存储,同一文件夹下的文件有个数限制么 解决方案 没有没有没有没有........................ 解决方案二: 请参考百度提供的开发人员手册

文件读取-Android jni c++ 如何读取jni文件夹下的文件?

问题描述 Android jni c++ 如何读取jni文件夹下的文件? 在一个jni工程中,jni文件夹的结构如下: jni |--Android.mk |--Application.mk |--filer.h |--file.cpp |--res.txt file.cpp里边的代码如下: #include ""filer.h""#include <fstream>#include <string>using namespace std;j

eclipse+android-Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录

问题描述 Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录 Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录,鼠标双击却不能打开某个具体的文件. 例如双击无法打开com.example.filepersisitencetest文件夹. 谢谢! 解决方案 点左边的箭头能展开么? 解决方案二: 在对应的工程目录中看看实际的路径是否存在吧

java实现读取、删除文件夹下的文件_java

java实现读取.删除文件夹下的文件 package test.com; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public ReadFile() { } /** * 读取某个文件夹下的所有文件 */ public static boolean readfile(String filepath) throws Fi

inux-LINUX 文件夹下误删文件如何恢复

问题描述 LINUX 文件夹下误删文件如何恢复 LINUX 下,TOMCAT ROOT里的内容先全删了.此时叫A1,然后重新上传了ROOT文件夹并解压了,此时是A2,发现弄错了,于是把A2也全删了.但是A1不知道怎么恢复,求大神帮助,在线等,QQ:100079465,报酬:100元支付宝转账. 解决方案 用r-studio一类的恢复软件,如果你了解文件系统的细节,也可以用winhex

求解答-android中如何让assets文件夹下的文件显示在Listview中?

问题描述 android中如何让assets文件夹下的文件显示在Listview中? android中如何让assets文件夹下的文件显示在Listview中? 怎么做啊? 求各位大神的源码 谢谢 解决方案 String filenames[] = getResources().getAssets().list(""); 解决方案二: String filenames[] = getResources().getAssets().list(""); 确实能获取到图片

viewpager-怎么把res文件夹下drawable文件夹下的图片保存到本地或者本地相册

问题描述 怎么把res文件夹下drawable文件夹下的图片保存到本地或者本地相册 我有一个项目是需要把res文件夹下的drawable文件夹下的图片保存到本地相册或者SD卡里面 我有一个viewpager 点击当前的图片让其保存到本地相册或者SD卡 我怎么获取当前的drawable? 解决方案 可以给viewpager里面的imageView添加事件,然后进行保存. 保存imageview到本地: http://www.codes51.com/article/detail_151353.htm

android开发中drawable文件夹下的文件是干什么用

问题描述 android开发中drawable文件夹下的文件是干什么用 android开发中drawable文件夹下的文件是干什么用的是作为对象用,还是作为方法参数用还是如何使用 解决方案 一般是和图片等资源相关的 解决方案二: drawable文件夹一般不放置图片资源,存放一些动画文件.选择器文件.图形配置文件,drawable-mdip/hdip/xhdip文件夹放置图片资源 解决方案三: drawable一般都是放置一些飞图片资源但是又可以管理图片资源的一些xml文件 ,一般都是放置一些s