3空间数据库实验指导书 - PostGIS的空间数据库操作

2019-03-22 18:32

PostGIS的空间数据库操作

1、SHP导入POSTGIS数据库 导出sql再导入数据库

方法1:以SQL文件为中间媒介实现shp导入空间数据库

Step1:shp2pgsql -s 4326 F:\\spatial\\data\\cities.shp cities >D:\\cities.sql

说明:-s 设置坐标系统; F:\\spatial\\data\\cities.shp指定数据源; cities 目标表名称。 Step2:运行postgres数据库;输入登录密码:admin 进入数据库;选中postgis数据库

Step3:点击工具栏上的

,弹出sql窗口

Step4:点击,找到刚才生成的SQL文件,打开,运行即可。

方法2:通过命令行直接导入空间库

Step1:shp2pgsql -s 4326 F:\\spatial\\data\\cities.shp public.cities psql -U postgres -p admin -d postgis

说明:-s 设置坐标系统; F:\\spatial\\data\\cities.shp指定数据源 ;public.cities 目标表名称; –U 用户名; –p 密码; –d 空间数据库名称。

方法3:通过界面导入空间库

Step1:在开始菜单中,运行 postgis 2.0下面的

Step2:点击

,设置数据库连接;确定,如果成功,在前一

界面上会出现“Connection succeeded.”的信息。

Step3:点击

,在对话框找到需要转入空间数据库的shp文件,

open

Step4:点击

即可导入数据

进行编码设置。

Step5:如果数据中的字段存在汉字的话,可以点击

2、SHP导入POSTGIS数据库 方法1:通过命令行直接导出shp

pgsql2shp -f d:\\shop_point.shp -h localhost -u postgres -P admin postgis public.cities

说明:-f d:\\shop_point.shp导出文件的名称和路径; -h 数据库的ip地址;–U 用户名; –p 密码; postgis 空间数据库名称;public.cities空间数据库表的名称

方法2:通过命令行直接导出shp

Step1:在开始菜单中,运行 postgis 2.0下面的Step2:点击

,设置数据库连接;确定,如果成功,在

前一界面上会出现“Connection succeeded.”的信息。

Step3:选择export界面

Step3:点击

;再点击

即可

3、PostGIS函数分类 字段处理函数

AddGeometryColumn为已有的数据表增加一个地理几何数据字段; DropGeometryColumn删除一个地理数据字段的; SetSRID设置SRID值

几何关系函数

这类函数目前共有10个,分别是: Distance,Equals,Disjoint,Intersects, Touches Crosses, Within, Overlaps,Relate

Contains, 几何分析函数

这类函数目前共有12个,分别是: Centroid, Area, Lenth, PointOnSurface, Boundary, Buffer, ConvexHull, Intersection, SymDifference, Difference, GeomUnion, MemGeomUnion

读写函数

这类函数很多,主要是用于在各种数据类型之间的转换,尤其是在于Geometry数据类型与其他如字符型等数据类型之间的转换,函数名如AsText、GeomFromText等。

4、Geo-SQL查询

Select c1.city_name From Cities C1, Rivers R Where ST_Overlaps(C1.geom,ST_Buffer(R.geom,3000))

Select c1.city_name From Cities C1, (Select geom from rivers where name='Alabama') as m Where ST_Overlaps(C1.geom,ST_Buffer(m,3000))

Select c1.city_name From Cities C1, (Select ST_Buffer(geom,3000) as dd from rivers where name='Platte') as m Where ST_Overlaps(C1.geom,m.dd)=true

Select c1.city_name, ST_Overlaps(C1.geom,m.dd) From Cities C1, (Select ST_Buffer(geom,3000) as dd from rivers where name='Platte') as m

做一个点查询(查询州数据)ST_Within 点查询城市 ST_Buffer、ST_Within 查询某一州包含的城市 ST_Contains 查询面价大于XX的州有哪些 ST_Area

查询州的名字(按照面积从大到小排序)ST_Area

条件查询空间数据,查询结果的空间数据,用文本显示 ST_AsText

与某点距离小于XX的要素有哪些(点线面分别查询一次)ST_Distance、ST_MakePoint 查询名字为XX的河流,流经哪些州 ST_Crosses

将某个城市平移一定的距离 ST_GeomFromText、ST_AsText

附件:常用的Geo-SQL查询

1. SELECT shengjie_region.name,shijie_region.name FROM

shengjie_region ,shijie_region where shijie_region.provincena = shengjie_region.name and ST_Within(ST_MakePoint(121.54, 38.91), shengjie_region.geom) 点查询某省份,并找到该省份的城市

2. SELECT name FROM shijie_region where ST_Within(ST_MakePoint(121.54, 38.91),


3空间数据库实验指导书 - PostGIS的空间数据库操作.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:师兄考研经验

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: