中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

成都住房和城鄉(xiāng)建設(shè)部網(wǎng)站天津疫情最新消息

成都住房和城鄉(xiāng)建設(shè)部網(wǎng)站,天津疫情最新消息,怎么做微信領(lǐng)券網(wǎng)站,建設(shè)銀行河北分行官網(wǎng)招聘網(wǎng)站1、自主學(xué)習(xí)QGIS開(kāi)發(fā)雖然QGIS本身功能強(qiáng)大,但還是架不住我們要編寫(xiě)新的功能、新的業(yè)務(wù)流程、新的算法。前文中我們提到,擴(kuò)展QGIS有2種方法,一是用Python、C來(lái)寫(xiě)QGIS的插件;另一種就是基于QGIS的C API開(kāi)發(fā)獨(dú)立應(yīng)用程序。然而后者資…

1、自主學(xué)習(xí)QGIS開(kāi)發(fā)

雖然QGIS本身功能強(qiáng)大,但還是架不住我們要編寫(xiě)新的功能、新的業(yè)務(wù)流程、新的算法。前文中我們提到,擴(kuò)展QGIS有2種方法,一是用Python、C++來(lái)寫(xiě)QGIS的插件;另一種就是基于QGIS的C++ API開(kāi)發(fā)獨(dú)立應(yīng)用程序。然而后者資料甚少,官方C++ API文檔也非常簡(jiǎn)略,我也不可能把所有功能都列舉出來(lái),放到博客里。因此我們想要開(kāi)發(fā)更多功能,就得借助一大利器——PyQGIS的文檔了。

2、PyQGIS

Python是一種面向?qū)ο?、直譯式的電腦程式語(yǔ)言,具有近二十年的發(fā)展歷史。它包含了一組功能完備的標(biāo)準(zhǔn)庫(kù),能夠輕松完成很多常見(jiàn)的任務(wù)。它的語(yǔ)法簡(jiǎn)單,與其它大多數(shù)程式設(shè)計(jì)語(yǔ)言使用大括號(hào)不一樣,它使用縮進(jìn)來(lái)定義語(yǔ)句塊。

Python由于有著較高的開(kāi)發(fā)效率,并且具有膠水語(yǔ)言的特性,被廣泛應(yīng)用于各種系統(tǒng)當(dāng)中。ArcGIS與QGIS也不例外。QGIS項(xiàng)目中,使用了sip庫(kù)來(lái)實(shí)現(xiàn)Python與C++代碼的綁定。QGIS官方稱之為PyQGIS。

QGIS軟件里面,專門有一個(gè)Python的控制臺(tái),用于使用Python腳本,實(shí)現(xiàn)一些特殊功能。開(kāi)啟方法為:Plugins → Python Console。效果圖如下:

由于Python的種種優(yōu)勢(shì),QGIS官方寫(xiě)了一個(gè)PyQGIS cookbook的文檔,里面對(duì)PyQGIS進(jìn)行了詳細(xì)的介紹。文檔內(nèi)容包括但不限于:

  • -載入圖層

  • -使用柵格圖層

  • -使用矢量圖層

  • -處理幾何形體

  • -投影變換

  • -地圖渲染、打印

研究PyQGIS文檔,就會(huì)發(fā)現(xiàn),里面各個(gè)類的名稱,與QGIS的C++ API中的名稱一樣。因此,我們可以通過(guò)QGIS的Python文檔,來(lái)學(xué)習(xí)QGIS C++的開(kāi)發(fā)。

3、舉例——載入圖層

上一篇中提到的,我們的第一個(gè)QGIS程序中的一個(gè)功能,就是打開(kāi)Shapefile文件,并顯示出來(lái)。如果我們通過(guò)PyQGIS的文檔,該怎樣學(xué)習(xí)開(kāi)發(fā)呢?

我們應(yīng)該先在PyQGIS中,找到相應(yīng)功能的文檔介紹。比如載入圖層,就是:http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html

里面介紹載入OGR圖層(Shapefile屬于OGR圖層),代碼如下:

vlayer = QgsVectorLayer("/path/to/shapefile/file.shp", "layer_name_you_like", "ogr")

我們”翻譯“成C++的代碼,就是:

QgsVectorLayer *vlayer = new QgsVectorLayer("/path/to/shapefile/file.shp", "layer_name_you_like", "ogr");

可以看出來(lái),Python代碼轉(zhuǎn)化為C++代碼非常方便。

文檔中還介紹了載入柵格圖層的Python代碼:

fileName = "/path/to/raster/file.tif"
fileInfo = QFileInfo(fileName)
baseName = fileInfo.baseName()
rlayer = QgsRasterLayer(fileName, baseName)
if not rlayer.isValid():print "Layer failed to load!"

其對(duì)應(yīng)的C++代碼就可以寫(xiě)成:

QString fileName = "/path/to/raster/file.tif";
QString fileInfo = QFileInfo(fileName);
QString baseName = fileInfo.baseName();
QgsRasterLayer *rlayer = new QgsRasterLayer(fileName, baseName);
if (!rlayer.isValid())qDebug()<<"Layer failed to load!";

4、小結(jié)

通過(guò)PyQGIS文檔,我們可以了解QGIS的基本開(kāi)發(fā)方法,也能很容易地將Python代碼轉(zhuǎn)化為C++代碼。

http://www.risenshineclean.com/news/34869.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)套餐是什么百度的關(guān)鍵詞優(yōu)化
  • wordpress 5.0.1編輯器seo外包多少錢
  • 十大網(wǎng)站app軟件下載網(wǎng)絡(luò)營(yíng)銷與策劃試題及答案
  • 做的網(wǎng)站打開(kāi)慢淮安百度推廣公司
  • 跨境電商亞馬遜seo教程之關(guān)鍵詞是什么
  • 網(wǎng)頁(yè)設(shè)計(jì)職位優(yōu)化大師下載安裝app
  • 四川華泰建設(shè)集團(tuán)網(wǎng)站免費(fèi)做網(wǎng)站網(wǎng)站
  • wordpress 評(píng)論框 提示網(wǎng)頁(yè)優(yōu)化方案
  • 英文網(wǎng)站建設(shè)方法網(wǎng)站怎么收錄到百度
  • 信陽(yáng)網(wǎng)站建設(shè)策劃方案廣東今日最新疫情通報(bào)
  • 酒類網(wǎng)站建設(shè)方案海南seo排名優(yōu)化公司
  • 黃石做網(wǎng)站的公司網(wǎng)絡(luò)營(yíng)銷實(shí)施計(jì)劃
  • wordpress主題下新建頁(yè)面網(wǎng)站seo站外優(yōu)化
  • 杭州百度推廣公司有幾家手機(jī)優(yōu)化軟件排行
  • 網(wǎng)站建設(shè)的公司哪家是上市公司電商培訓(xùn)基地
  • 網(wǎng)站建設(shè)公司怎么做業(yè)務(wù)aso優(yōu)化教程
  • 瀘州市住房與城鄉(xiāng)建設(shè)局網(wǎng)站google免費(fèi)入口
  • 珠海網(wǎng)站制作首頁(yè)上線了建站
  • 怎么購(gòu)買網(wǎng)站空間免費(fèi)廣告發(fā)布平臺(tái)
  • 2023年企業(yè)年報(bào)入口推動(dòng)防控措施持續(xù)優(yōu)化
  • wordpress+4.5+多站點(diǎn)手機(jī)百度免費(fèi)下載
  • 網(wǎng)站設(shè)計(jì)怎么做創(chuàng)建自己的網(wǎng)站怎么弄
  • 閔行網(wǎng)站設(shè)計(jì)seo專家是什么意思
  • 六安建設(shè)局網(wǎng)站百度搜索關(guān)鍵詞數(shù)據(jù)
  • bec聽(tīng)力哪個(gè)網(wǎng)站做的好網(wǎng)站制作公司排名
  • wordpress tag 別名北京優(yōu)化seo公司
  • 石家莊百度推廣家莊網(wǎng)站建設(shè)提高搜索引擎檢索效果的方法
  • 成都網(wǎng)站排名 生客seo自己搭建網(wǎng)站
  • 網(wǎng)站內(nèi)地圖位置怎么做制作app軟件平臺(tái)
  • wordpress如何上傳超過(guò)2m合肥seo網(wǎng)站排名