ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(一)安装第三方空间库
postgis是postgresql的空间扩展对象,它需要一些第三方库的支持。包括GEOS, PROJ.4 和 GDAL。我们首先安装这几个空间库。
在ubuntu系统终端执行:(预先装一些依赖的库)
$ sudo apt-get install binutils libproj-dev gdal-bin
然后从源码安装GEOS, PROJ.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框架(一)安装第三方空间库的更多相关文章
- ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(三)加载空间数据
之前两篇基本上搭好了geodjango开发的环境了,当然你的电脑上肯定要有python和django的环境(这个我就不介绍了,网上一搜一大堆),我自己用的python3.5和django2.0(毕竟2 ...
- ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(二))安装postgresql和postgis
卸载老版本sudo dpkg --purge postgis postgresql-9.3-postgis1.安装postgresql sudo apt-cache search postgresql ...
- Ubuntu16.04搭建OpenVPN
Ubuntu16.04搭建OpenVPN 2018年12月27日 15:50:59 VinQin 阅读数:21042 简介 如果在一个非信任网络下比如旅社或者咖啡店的WiFi网络下,想要通过你的智 ...
- Ubuntu16.04搭建LAMP开发环境
Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...
- Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用
一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...
- ubuntu16.04搭建个人简易DLP
前言 最近一朋友让我帮忙搭建一台服务器,用做公司的服务器,但是该服务器需要满足一些安全要求,于是乎就有了下面的解决过程^_^ 需求 期望普通用户和管理员都能ssh登陆服务器,但禁止scp或者其他方式下 ...
- TestLink+Jenkins在Ubuntu16.04搭建集成测试环境
序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...
- ubuntu16.04搭建ftp服务器
因为习惯了vs进行开发,所以对于Linux的代码编辑开发都在vs里面进行,通常我们都是ssh远程登录到Linux,使用ftp或者sftp共享Linux目录里面的文件方便对文件的共享,这里介绍一下在ub ...
- 【.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 ...
随机推荐
- 【nosql】之ehcache.xml文件属性描述
<ehcache updateCheck="false" name="shiroCache"> <defaultCache <!--最大 ...
- solr4.9+tomcat7 multiCore
ES不支持groupby,于是想看看solr怎么实现的. 搭建环境: 1)下载tomcat7.solr4.9,解压: 2)配置tomcat7的端口和URIEncoding(utf-8): 3)拷贝so ...
- 资源 Des加密
Unity3d资源管理分析 http://blog.csdn.net/sgnyyy/article/details/39268215 打包资源 http://www.cnblogs.com/sifen ...
- C/C++程序CPU问题分析
转载地址:http://www.10tiao.com/html/473/201606/2651473094/1.html 程序的CPU问题是另外一类典型的程序性能问题,很多开发人员都受到过程序CP ...
- 面向对象php 接口 抽象类
1.定义类和实例化对象: 使用关键字class定义类,使用new实例化对象: 2.类成员的添加和访问: 类成员:有属性,方法,常量(常量名不带$符): 访问属性的时候,变量名不带$符 添加属性需要使用 ...
- [UE4]Horizontal Box
HorizontalBox是让子控件水平排列. 属性图如下 Padding 留白.当子控件定义好位置与大小之后,再按padding的值,偏移,这个属性会影响子控件在布局里的位置.一般用于间隔 上下左右 ...
- sas 解析json
代码: proc ds2;data _null_; method init(); dcl package json j(); dcl int rc tokenType ...
- CRM 2016 执行IFrame 子页面中函数
CRM代码: var iframe = Xrm.Page.getControl("IFRAME_xxx").getObject(); iframe.contentWindow.Re ...
- h5标签兼容
<!--[if lt IE 9]> <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.js"> ...
- python学习笔记-学习大纲