文档章节

QGIS简介与源代码编译

openthings
 openthings
发布于 2015/07/18 11:55
字数 1464
阅读 5913
收藏 9

    QGIS(http://qgis.org)是一个集成了很多个开源的空间数据处理库的桌面GIS软件,支持Python脚本。QGIS基于QT和SIP进行开发,支持Windows\Linux\MacOS等操作系统,可以访问MySQL/PostGRE等数据库的空间数据,可以连接到OpenstreetMap拉取数据做本地分析和制图。

    跟专业的GIS平台如SuperMap(http://www.supermap.com.cn)、ArcGIS等相比,QGIS虽然功能算不上强悍,好多模块还有Bug,但处理一些小数据、画几个简单的地图倒也是绰绰有余,而且是免费和开源的,作为学习是一个非常不错的起点(那些商业软件可不会给你看源代码,而且死贵死贵的....,不过,要做项目和应用系统,还是推荐用SuperMap了,可以支持服务器、桌面、移动端、Web的全面开发,还有完善的培训和技术支持,而QGIS只是一个小型的桌面工具)。

    目前版本的QGIS(2.10.0)是基于QT4.8.6和Python2.7.9的,都是上一代的最终稳定版本,可以保证环境的稳定,但确实有点老了。要知道QT都5.5了,Python都3.4了。不过,目前官方的Team就是这样搞的,要是自己去升级的话,估计要长好多包啊,因为很多库都是没有最新版本的。

    使用上就不多说了,既然是学习,自己编译和看源代码那时必须的。

1、编译环境

    先说一下基础环境,我用的VirtualBox5.0+UbuntuKylin15.04虚拟机。因为QGIS用的软件库有点老,别随便装软件(否则弄个新的库可能不兼容),最好是搞个全新的虚拟机进行安装。

    下载:http://qgis.org/en/site/forusers/download.html,我从这儿下的2.10的版本,是目前最新的稳定版。

    也可以到这里去:https://github.com/qgis/QGIS 使用git clone抓下来目前开发的代码,目前是2.11开发版。不过,我抓的这个版本编译没有通过,2.10的倒是很顺利。

    开始安装一些支持库,完整的参考见这里:https://htmlpreview.github.io/?https://github.com/qgis/QGIS/blob/master/doc/INSTALL.html#toc4  。

    我用的UbuntuKylin 15.04是Vivid版本,执行下面的操作进行安装。

apt-get install bison cmake doxygen flex git graphviz grass-dev 
libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl0-dev 
libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev 
libqscintilla2-dev libqt4-dev libqt4-opengl-dev libqt4-sql-sqlite 
libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev 
libsqlite3-dev lighttpd locales pkg-config poppler-utils pyqt4-dev-tools
 python-all python-all-dev python-pyspatialite python-qscintilla2 
python-qt4 python-qt4-dev python-sip python-sip-dev qt4-doc-html 
spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base 
xfonts-scalable xvfb cmake-curses-gui

2、编译源码

然后,执行下面的过程进行下载、解包、编译:

sudo apt-get install build-essential
wget http://qgis.org/downloads/qgis-latest.tar.bz2
tar -vxf qgis-latest.tar.bz2
cd qgis-2.10.0
mkdir build
cd build
cmake ..
make

完成后,进入build\ouput\bin,运行qgis,正常的话应该已经可以使用了。

如果要进行插件的开发,可参考:http://qgis.org/en/site/getinvolved/development/index.html#plugin-development

3、安装QGIS

如果只是下载代码编译,可能有的库没有安装,也可以下载QGIS的安装包先进行安装。

sudo gedit /etc/apt/sources.list
#编辑软件源列表,然后加入下面两行:
deb  http://qgis.org/debian vivid main
deb-src http://qgis.org/debian vivid main
#注意:vivid是Ubuntu15.04的版本号代码,如果是其它的,需相应修改。
#参考:

#然后,加入源的认证码:
gpg --keyserver keyserver.ubuntu.com --recv DD45F6C3
gpg --export --armor DD45F6C3 | sudo apt-key add - 

#最后,执行安装操作。
sudo apt-get update
sudo apt-get install qgis python-qgis qgis-plugin-grass

#大功告成,进控制台,运行之。
qgis

4、QGIS在线源码的编译

在线的源代码2.11版因为在修改,加入了QWT的一些东西,目前需要手工进行安装。

抓取源码最新版本,然后按照提示进去编译:

git clone 
cd QGIS
mkdir build-master
cd build-master
cmake ..
make 
sudo make install

遗憾的是,会出一些错,因为这是个开发版,出错是正常的。

5、编译QWT和QWTPolar

我这里报的是QWTPolar的库找不到,OK,开始网络搜索。

要装QWTPolar需要先装QWT,这是一个QT的绘图扩展库,而且要6.1版本以上。但是这与原来的说明的路径就有了很多变化。

http://sourceforge.net/projects/qwtpolar/ 去下载了qwtpolar1.1.1版本。

再下载http://sourceforge.net/projects/qwt/里的qwt6.1.2版本。

编译qwt:

tar -vxf qwt6.1.2.tar.bz2
cd qwt6.1.2
qmake
make
sudo make install

哈哈,还挺顺利的。

只不过,安装完后的目录是/usr/local/qwt6.1.2,这个很重要的啊,因为qwtpolar缺省用的并不是这个目录。

现在执行下面的脚本,把新的路径和环境变量加进去:

export PATH=/usr/local/qwt-6.1.2/include:$PATH
export QMAKEFEATURES=/usr/local/qwt-6.1.2/features

再去编译QWTPolar这个库:

unzip qwtpolar1.1.1.zip
cd qwt1.1.1
qmake
make
sudo make install

如果有问题,把系统重启一下,我就是这样搞定的。如果还不行,祝你好运啦!

6、修改QGIS的配置参数

再次进入QGIS/build-master目录,我们上面自己建的那个专门用于编译的目录。

ccmake ..

按照提示,修改里面QWTPOLAR相关的变量:

QWTPOLAR_INCLUDE_DIR=/usr/local/qwtpolar-1.1.1/include
QWTPOLAR_LIBRARY=/usr/local/qwtpolar-1.1.1/lib/libqwtpolar.so
#以及
QWT_INCLUDE_DIR=/usr/local/qwt-6.1.2/include
QWT_LIBRARY=/usr/local/qwt-6.1.2/lib/libqwt.so

然后选择“g”进行编译文件Makefile的创建,然后make即可。


© 著作权归作者所有

openthings
粉丝 325
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
加载中

评论(1)

openthings
openthings 博主
编译github的QGIS2.11 Master最新版时,需要安装和设置qwt和qwtpolar库,今天做了补充。
QGis2.14.4基于Win10+Qt4.8.6+VS2010环境的编译

作为关于QGis的第一篇博文,我还是先简单介绍下QGis(当然,我默认大家至少应该知道GIS是什么),比较官方的描述我就直接摘取了wiki上的内容: QGIS(原称Quantum GIS)是一个自由软件的桌面...

袁_龙
2016/07/23
1K
4
QGIS3+vs2015+QT5.6.1编译

找QGIS资料访问:http://user.qzone.qq.com/2665146134/blog/1488114190 QGIS3还没有正式发布,我是从GITHUB上直接下载的源码,为了尝鲜。我直接下载了GITHUB上的代码。因此代码中有一些问题...

GIS开源
2017/02/21
0
0
QGIS for Android 开发:三、QGIS for android编译

配置编译环境 老版本使用QGIS-Android编译,然而针对现有的更新平台都不及时,如果选择老平台开发可以考虑,但考虑到软件系统更新兼容性问题,放弃QGIS-Android中的编译方法,使用OSGeo4A进行...

洋碱
01/15
61
0
QGIS3二次开发环境

一、 前言: 找QGIS资料访问:http://user.qzone.qq.com/2665146134/blog/1488114190 QGISX一般可以使用C++和PYTHON两种语言进行二次开发,这两种方式又可以分别有插件模式开发和独立应用开发...

GIS开源
2017/05/20
0
0
基于高德在线地图及REST API 的 QGIS插件开发

一、 简述 地理信息系统(以下简称GIS)的造价一般是比较昂贵的。GIS平台和地图数据是GIS的重要组成部分,其价格(商业GIS平台的价格和商业地图资源的价格)一般都比较贵,因此很多中小用户想...

GIS开源
2016/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
14
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部