PostGIS命令行使用

标签: Postgis 分类: Gis 创建时间:2019-08-19 10:18:17 更新时间:2025-01-17 10:39:22

说是PostGIS的命令行使用,其实就是PostgreSQL的命令行使用,PostGIS只不过是Postgresql的一个插件罢了。

1.设置密码

在linux上刚安装好的postgresql会有一个默认用户postgres,但是没有密码,需要手动给他设置一个密码,才能登录数据库。首先在命令行中切换至postgers用户:sudo su postgres,然后登录默认的数据库:psql postgres ,(以上两步也可以直接写为:sudo -u postgres psql postgres)然后通过:\password postgres,给用户postgres设置密码,需要输入两次密码。

2.创建数据库

首先连接数据库:sudo -u postgres psql

postgres=# create database hdxs; 这里的分号一定要输,否则psql不认为这是一个语句的结束。

4.数据的导入和导出

数据导出使用pg_dump命令,导入使用psql命令

1
2
3
4
5
6
## 数据导出,导出一张表: -U 用户名 ,-t 数据表 , -f 文件名,test数据库名 
.\pg_dump.exe -Upostgres -t pipelineproperty -f D:\zlc\dump.sql test

## 数据导入: -d 数据库名,-f 文件名,postgres 用户名
.\psql.exe -d hdxs -f D:\zlc\dump.sql postgres

数据导出

数据导出
数据导入

1.导出数据库:

  • 方式一:pg_dump  -U  postgres  -f  c:\db.sql postgis
  • 方式二:pg_dump  -U postgres  postgis > c:\db.sql

2.导入数据库:方式一:psql  -d  postgis  -f  c:\db.sql  postgres

3.导出具体表:方式一:pg_dump -Upostgres -t mytable -f  dump.sql  postgres

4.导入具体表:方式一:psql  -d  postgis  -f  c:\ dump.sql postgres

问题:
(1)使用pg_dump时,在linux出现:Peer authentication failed for user “postgres”

这个时候,不需要使用sudo su postgres切换到postgres用户,只需要在pg_dump的命令中添加-h为localhost即可

1
pg_dump -U postgres -h localhost hdxs > hdxs.sql

(2)同样在linux 下使用psql导入sql数据库时出现: Ident authentication failed for user “postgres”

这个时候要使用sudo su postgres 切换到postgres用户下,然后使用psql创建数据库,退出psql,然后在执行:

1
psql -d hdxs -f hdxs.sql postgres

5.坐标转换

数据库中的坐标系是4490的坐标系,需要转换成高德地图坐标系。这个只需要把下面的 geoc-pg-coordtransform.sql 文件下载下来,然后通过执行脚本的方式将里面的 sql 脚本执行一遍就可以了,最好不用用复制的方式,这种方式sql语句可能执行不成功。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。