QGIS简介与源代码编译

    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即可。


你可能感兴趣的:(qt,源码编译,qwt,qgis,qwtpolar)