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. Web jsp开发学习——点击菜单页面切换

      两个网页使用同一个head,在点击“首页”后,head的“首页”变成绿色,点击“新闻”后,head的“新闻”变成绿色,head的“首页”恢复原来的颜色   head.jsp <%@ page ...

  2. IDC:电源系统

    ylbtech-IDC:电源系统 电源系统(Power System)是由整流设备.直流配电设备.蓄电池组.直流变换器.机架电源设备等和相关的配电线路组成的总体.电源系统为各种电机提供各种高.低频交. ...

  3. python的导包问题

    有事会遇到在python代码中导入包错误问题,本文简单对python包的引入做简单介绍 简单说,我认为python导包一共有3种情况,分别是: 要导的包与当前文件在同一层要导的包在当前文件的底层(就是 ...

  4. sas基础系列(2)-时间差精度获取

    data a; interval='month'; start='14FEB2013'd; end='13MAR2013'd; months_default=intck(interval, start ...

  5. Unable to load the plugin type

    crm 2016 post update 异步执行 1 我们自定义文件是发布在GAC的,所以先注册GAC 2 更新注册插件 3 重启IIS ,异步服务

  6. Ubuntu 14.4 安装OpenVZ

    添加源 vim /etc/apt/sources.list.d/openvz.list 写入下面内容保存 如果需要,可以视情况改动注释..(如果看不懂,请不要在意这行字) deb http://dow ...

  7. 网络编程socket,详细讲述osi七层协议

    一 网络编程 源方: 我们首先来说下数据在两台计算机之间的传递:操作系统控制着除应用层以外的四层 对于用户来说我们发数据一般都是在应用层,也就是我们是直接操作应用软件的,那么应用层要把数据传给传输层就 ...

  8. [SHOI2012]信用卡凸包(计算几何)

    /* 考验观察法?? 可以发现最终答案等于所有作为圆心的点求出凸包的周长加上一个圆的周长 向量旋转 (x1, y1) 相较于 (x2, y2) 旋转角c 答案是 (dtx * cosc - dty * ...

  9. es6基础(4)--字符串扩展

    //字符串扩展 { console.log('a','\u0061'); console.log('s','\u20BB7');//超过了0xffff console.log('s','\u{20BB ...

  10. angularjs探秘<二>表达式、指令、数据绑定

    距离第一篇笔记好久了,抽空把angular的笔记梳理梳理. ng-init:初始化指令,这里可以声明变量,且变量不用指定数据类型(类似js中的var用法). 数值变量与字符串相加默认做字符串拼接运算. ...