最近些许繁忙,没有时间系统整理PostgreSQL和PostGIS的安装和使用方法。所以就简单记录一下遇到的坑。

1、找不到 libintl-9.dll

我安装的PostgreSQL版本是11.7,PostGIS是3.0.1 (利用Stack Builder安装的PostGIS 3.0 bundle)。

安装完成,打算导入shp数据的时候发现PostGIS Shapefile Import/Export Manager无法打开,并提示“找不到libintl-9.dll”,如下:

这可咋办呢?只需要找到PostgreSQL安装目录的bin目录下的libintl-9.dll,将它复制到postgisgui目录下即可。

2、导入shp数据时提示“无法打开shp/dbf(shp/dbf file can not be opened)”

通过PostGIS Shapefile Import/Export Manager导入数据时惨遭拒绝,提示“shp/dbf file can not be opened”,如图。那可咋办呢?首先检查你的数据的路径中是否带有中文,postgis导入shp数据不支持中文路径。

3、导入shp数据时提示“Unable to convert data value to UTF-8”

通过PostGIS Shapefile Import/Export Manager导入数据时,提示“Unable to convert data value to UTF-8”。说明你数据中的编码格式与shp导入工具的设置的编码不一致。这个错误,一般主要是在shp数据有中文属性时出现(dbf中含有中文)

如果确实是由于你的数据中存在中文编码(有中文属性)导致的问题,那咋办呢?只需要在这里的Options中将编码改成GBK即可。

4、导入shp数据时二话不说,直接失败

通过PostGIS Shapefile Import/Export Manager导入数据时,没有任何其他提示,只显示”Shapefile import failed“,如图。

如果你连接的这个数据库是你自己创建的(不是名叫"postgis_30_sample"那个官方的空间数据库的例子),那么就有可能是空间数据库没有成功创建,什么意思呢?就是说你只创建了一个普通数据库(没有空间字段,自然就不支持shp数据导入)。

如何判断自己是否成功创建了空间数据库呢?检查,数据库(Databases)——你的数据库名称——架构(Schemas)——public——表(Tables),这个目录下是否存在一个名叫spatial_ref_sys的表,如果不存在,就说明你的数据库不具备存储空间数据的能力。

那咋办呢?首先让我们打开postgreSQL的查询工具,在菜单栏的工具选项里

在查询工具中输入如下SQL语句,添加空间数据库管理插件Postgis,运行。然后,刷新页面

CREATE EXTENSION PostGIS

现在数据表中就会出现名为spatial_ref_sys的表了,说明可以导入空间数据了。

关于postgis的具体使用可以参考下面这篇博客,虽然postgis版本不同但操作都是类似的。

搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

PostgreSQL与PostGIS安装使用时需要注意的坑的更多相关文章

  1. 与你相遇好幸运,Postgresql和postgis安装

    笔者开发环境: windows 7 x86_64 一开始安装的是官网最新版 PostgreSQL 9.6 ,安装成功 之后安装PostGIS Bundle 2.2 for PostgreSQL x64 ...

  2. 当我们安装使用时,会出现eclipse启动不了,出现“Java was started but returned exit code=13......”的问题

    安装win8.1后,启动eclipse,也会提示 "java was started but returned exit code=13" 可能是eclipse.ini配置文件错误 ...

  3. CentOS7使用yum安装PostgreSQL和PostGIS

    更新yum源 CentOS7默认yum源的PostgreSQL版本过低,不适合在本版本上使用.在https://yum.postgresql.org/repopackages.php上找到适合Cent ...

  4. PostgreSQL及PostGIS使用

    基础知识 参考文档:http://www.postgis.net/docs/ PostGIS支持的GIS对象是OpenGIS Consortium(OGC)定义的“简单特征”的超集.OpenGIS规范 ...

  5. MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

    MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...

  6. ubuntu安装postgresql与postgis

    版本信息 ubuntu    14.04.1LTS postgresql   9.3.5 postgis       2.1.2 今天尝试着安装了postgis 2.1.2,(较简便的包安装,不是源码 ...

  7. PostgreSQL 之 yum安装 postgis 插件

    版本说明: CentOS7.5 + PostgreSQL 10.5 参考资源: https://www.postgresql.org/download/linux/redhat/ http://dow ...

  8. CentOS 6.9/7通过yum安装指定版本的PostgreSQL扩展PostGIS

    一.安装PostGIS扩展插件(24_10) // 安装EPEL源 # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-rele ...

  9. Linux 安装python3.7.3 提示已经自动安装了pip和setuptools 可是使用时bash提示没有找到pip

    Linux 安装python3.7.3 提示已经自动安装了pip和setuptools 可是使用时bash提示没有找到pip 今天的任务就是找到解决办法 另外就是用布置好python3的路径

随机推荐

  1. Blazor 003 : Razor的基础语法

    上文,我们通过剖析一个最简单的 Blazor WASM 项目,讲明白了 Razor 文件是什么,以及它被转译成 C#后长什么样子.也介绍了 Razor 中最简单的一个语法:Razor Expressi ...

  2. Ubuntu16.04 搭建samba服务器

    1昨天花了一天时间弄了NFS服务器,结果搭建完之后出现各种问题,要么挂载不上,要么就是字符乱码.今天在看到一个关于树莓派的介绍的时候,提到Samba服务器的搭建,我尝试了一下,结果发现很顺利地就能够正 ...

  3. 什么是BASH?

    BASH是Bourne Again SHell的缩写.它由Steve Bourne编写,作为原始Bourne Shell(由/ bin / sh表示)的替代品.它结合了原始版本的Bourne Shel ...

  4. Springmvc入门基础(三) ---与mybatis框架整合

    1.创建数据库springmvc及表items,且插入一些数据 DROP TABLE IF EXISTS `items`; CREATE TABLE `items` ( `id` int(11) NO ...

  5. phpstorm 快捷生成函数

    在函数上一行键入 /** /** * @param $a * @param $b * @return mixed */ function abc($a, $b) { $c = $a + $b; ret ...

  6. memcached 和 MySQL 的 query ?

    cache 相比,有什么优缺点? 把 memcached 引入应用中,还是需要不少工作量的.MySQL 有个使用方便的 query cache,可以自动地缓存 SQL 查询的结果,被缓存的 SQL 查 ...

  7. Mybatis入门程序(一)

    1.入门程序实现需求 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户(二) 更新用户(二) 删除用户(二) 2.引入Mybatis所需 jar 包(Maven工程) < ...

  8. vue 3d轮播组件 vue-carousel-3d

    开发可视化项目时,需要3d轮播图,找来找去发现这个组件,引用简单,最后实现效果还不错.发现关于这个组件,能搜到的教程不多,就分享一下我的经验. 插件github地址:https://wlada.git ...

  9. Python这些位运算的妙用,绝对让你大开眼界

    位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...

  10. c++中的左值和右值的理解

    1.左值和右值的概念 C++中左值(lvalue)和右值(rvalue)是比较基础的概念,虽然平常几乎用不到,但C++11之后变得十分重要,它是理解 move/forward 等新语义的基础. 左值与 ...