zoukankan      html  css  js  c++  java
  • 在x64 Linux上安装PostGIS

    PostGIS安装前,需要先安装GEOS和PROJ组件,这两个组件的安装没什么好说的。安装好后,PostGIS才能顺利的执行configure命令。
    PostGIS安装完成后,需要创建一个模板数据库,以后新建空间数据库都以这个数据库为模板就可以了,这个数据库中包含了所有的空间数据类型和函数。
    切换到postgres用户,执行:
    createdb postgis-template
    createlang plpgsql postgis-template
    这样就完成了一个数据的创建,但是这个数据库只是普通的数据,还不能作为空间数据库模板,需要执行几个脚本导入数据库对象
    psql -d postgis-template -f postgis.sql
    psql -d postgis-template -f spatial_ref_sys.sql
    psql -d postgis-template -f postgis_comments.sql
    前两个脚本是必须的,最后一个似乎不是很有必要
    个人认为,最好使用PgAdmin来执行,这样有什么错误提示看得比较清楚。
    执行第一个脚本时,会遇到libgeos_c.so.1动态库找不到的问题,这是因为geos默认安装在/usr/local/lib这里,但是似乎因为Pg是x64模式的,所以默认搜索的lib64的目录,此时,需要对/usr/local/lib/libgeos_c.so.1做一个软连接。这里有两个选择,/usr/local/lib64和/usr/lib64,经测试,只要在/usr/lib64中作软连接才能解决问题。geos库需要软连接,Proj库也需要,所以主要看提示,一般这两步做完,基本上执行脚本就不会遇到什么问题了。

    此后,如果需要新建空间数据库,可以使用以下两种方式:
    在shell里,使用postgres用户
    $createdb -T postgis-template my_spatial_db
    或者使用psql工具
    postgres=# CREATE DATABASE my_spatial_db TEMPLATE=postgis-template

    备注:一直想不通,就是geos这样的库,既然使用x64模式编译,为什么不自动放入lib64里去。
    遇到类似找不到库的问题,也不是总能直接做软连接或者直接拷贝解决的,因为我一直不清楚如果可执行文件时x64的,能不能调用32bir模式编译的库(很大可能发生问题,指针的长度都不一致)。
    所以必须使用file -b 文件名,这个命令来查看一下库文件是否是x64模式的,如果是,那么放心的做软连接就没问题,如果不是,就算做了,可能也会发生其他问题。
    后面一种情况,我没有测试过,因为我用file命令检查geos和proj库,都是x64模式的,所以就直接做软连接了。

  • 相关阅读:
    第十三课:js操作节点的创建
    matlab 绘制条形图
    Pearson(皮尔逊)相关系数及MATLAB实现
    Spearman Rank(斯皮尔曼等级)相关系数及MATLAB实现
    A Regularized Competition Model for Question Diffi culty Estimation in Community Question Answering Services-20160520
    Competition-based User Expertise Score Estimation-20160520
    We Know What @You #Tag: Does the Dual Role Affect Hashtag Adoption-20160520
    matlab 画图数据导入
    Who Says What to Whom on Twitter-www2011-20160512
    The Lifecycle and Cascade of WeChat Social Messaging Groups-www2016-20160512
  • 原文地址:https://www.cnblogs.com/fre2technic/p/1914044.html
Copyright © 2011-2022 走看看