postgis是postgresql的空间扩展对象,它需要一些第三方库的支持。包括GEOSPROJ.4 和 GDAL。我们首先安装这几个空间库。

在ubuntu系统终端执行:(预先装一些依赖的库)

$ sudo apt-get install binutils libproj-dev gdal-bin

然后从源码安装GEOSPROJ.4 和 GDAL三个空间库。

    1)GEOS:GEOS是一个集合形状的拓扑关系操作实用库(可能这么说不太准确),简单得说,就是判断两个几何形状之间关系和对两个几何形状进行操作以形成新的几何  形状的库

$ wget http://download.osgeo.org/geos/geos-3.5.1.tar.bz2
$ tar xjf geos-3.5.1.tar.bz2
下载完成后:
配置:
$ cd geos-3.5.1
$ ./configure
$ make
$ sudo make install
$ cd ..
(注意:官网给的版本是3.4.2,但是由于我使用的postgresql是9.6,编译需要GEOS+,所以我改为3.5.1版本,在这个地方折腾了好长时间,一定要注意版本是否和自己安装postgresql匹配)
2)proj.4:开源GIS最著名的地图投影库.Proj.4的功能主要有经纬度坐标与地理坐标的转换,坐标系的转换,包括基准变换等
下载源码:
$ wget http://download.osgeo.org/proj/proj-4.9.1.tar.gz
$ wget http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz
解压缩源代码压缩文件,并在nad子目录中提取基准移位文件。这些必须在配置之前完成
$ tar xzf proj-4.9.1.tar.gz
$ cd proj-4.9.1/nad
$ tar xzf ../../proj-datumgrid-1.5.tar.gz
$ cd .. 配置
$ ./configure
$ make
$ sudo make install
$ cd .. 3)GDAL:GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。(百度百科定义)
下载源码:
$ wget http://download.osgeo.org/gdal/2.2.2/gdal-2.2.2.tar.gz
$ tar xzf gdal-2.2.2.tar.gz
$ cd gdal-2.2.2
(官网给的版本是1.11.2,我使用时出现错误(忘记啥错误了),我换成更新的版本,这次ok)
配置:
$ ./configure
$ make # 挺久的,可以看会动漫了
$ sudo make install
$ cd .. 安装完检查是否安装成功:
安装之后的文件在/user/local下面,其中bin下面放可执行的程序,includes存放源代码,lib下存放动态库(xx.sa)和静态库(xx.a)。 geos:在gdal目录下,执行./configure,如果出现GEOS support = yes,成功。proj属于动态加载,不会显示,只需将proj的动态库和gdal的动态库放在一起即可。
检验GDAL:在终端输入gdalinfo名利即可。 错误处理:(配置geodjango环境时,绝大多数错误是外部共享库不能被加载,因为操作系统不知道去哪里加载从源构建的库目录)
配置环境变量:将库路径user/local/bin加入到LD_LIBRARY_PATH
vim ~/bashrc
加入下面的一行:
export LD_LIBRARY_PATH=/usr/local/lib

设置系统库路径:
$ sudo echo /usr/local/lib >> /etc/ld.so.conf
$ sudo ldconfig 修改错误后,再次检查是否安装成功
ps:(一定要注意版本问题,我真的在版本上折腾了很久,如果还有无法解决的错误,建议查看官方文档))
希望对大家有帮助,我也是初学,不足之处,多多指正!


ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(一)安装第三方空间库的更多相关文章

  1. ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(三)加载空间数据

    之前两篇基本上搭好了geodjango开发的环境了,当然你的电脑上肯定要有python和django的环境(这个我就不介绍了,网上一搜一大堆),我自己用的python3.5和django2.0(毕竟2 ...

  2. ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(二))安装postgresql和postgis

    卸载老版本sudo dpkg --purge postgis postgresql-9.3-postgis1.安装postgresql sudo apt-cache search postgresql ...

  3. Ubuntu16.04搭建OpenVPN

    Ubuntu16.04搭建OpenVPN 2018年12月27日 15:50:59 VinQin 阅读数:21042   简介 如果在一个非信任网络下比如旅社或者咖啡店的WiFi网络下,想要通过你的智 ...

  4. Ubuntu16.04搭建LAMP开发环境

    Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...

  5. Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用

    一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...

  6. ubuntu16.04搭建个人简易DLP

    前言 最近一朋友让我帮忙搭建一台服务器,用做公司的服务器,但是该服务器需要满足一些安全要求,于是乎就有了下面的解决过程^_^ 需求 期望普通用户和管理员都能ssh登陆服务器,但禁止scp或者其他方式下 ...

  7. TestLink+Jenkins在Ubuntu16.04搭建集成测试环境

    序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...

  8. ubuntu16.04搭建ftp服务器

    因为习惯了vs进行开发,所以对于Linux的代码编辑开发都在vs里面进行,通常我们都是ssh远程登录到Linux,使用ftp或者sftp共享Linux目录里面的文件方便对文件的共享,这里介绍一下在ub ...

  9. 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境

    查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...

随机推荐

  1. CentOS7切换到root用户和退回普通用户

    切换成root用户: sudo su - 退出root用户并切换回普通用户: exit

  2. uoj#213. 【UNR #1】争夺圣杯

    http://uoj.ac/problem/209 单调栈求出每个位置x左边第一个大于它的位置L[x]和右第一个不小于它的位置R[x],于是矩形L[x]<=l<=x<=r<=R ...

  3. Python:删除、增加字典的元素

    一)增加一个或多个元素 d = {'a': 1}  d.update(b=2)  #也可以 d.update({‘b’: 2}) print(d) -->{'a': 1, 'b': 2}    ...

  4. springmvc学习(五)

    这次主要是记录一下 springmvc 关于异常处理 和 拦截的回顾 关于springmvc  异常处理:springmvc 提供了 HandlerExceptionResolver  异常处理解析接 ...

  5. HDOJ 2001 计算两点间的距离

    #include<iostream> #include<cstdio> using namespace std; int main() { double a, b, x, y; ...

  6. BGP属性+13条选路原则(转载)

    原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html BGP(Border Gateway Protocol)边界网关协议 BGP(Borde ...

  7. [UE4]正交

    一.如果两条直线是垂直的,那么就可以说这2条直线是正交的.既然有垂直,为什么还要有正交概念呢? 因为正交可以描述两个或者多个变量之间互不影响.互不干涉,而垂直是完全属于几何的术语. 二.具有正交关系的 ...

  8. 学习js第二天小结

    if-else if       ---------适用于区间范围的判断 If(判断条件--一般是boolean类型的值或是关系表达式或是逻辑表达式 ){ 要执行的代码; }else if(判断条件) ...

  9. 添加删除mysql用户

    create user 'hive_user'@'%' identified by '密码'; grant all privileges on hive.* to hive_user@'%'; cre ...

  10. 禁用SSL v2.0、SSL v3.0协议

    1.禁用SSL v2.0.SSL v3.0协议,禁用低强度加密密钥.使用TLS 1 TLSv1.1 TLSv1.2版本.2.禁用SSLv2参考修补方法如下:查看本机sslv3加密列表:openssl ...