PyQGisCookbook 支援投影 九

2021-10-04 22:07:46 字數 2808 閱讀 3992

如果您在pyqgis控制台之外,則此需要匯入以下**段:

from qgis.core import (qgscoordinatereferencesystem,

qgscoordinatetransform,

qgsproject,

qgspointxy,

)

qgscoordinatereferencesystem

如果沒有另外指定第二個引數,則預設使用postgis srid。

通過文字(wkt)指定crs

wkt = 'geogcs["wgs84", datum["wgs84", spheroid["wgs84", 6378137.0, 298.257223563]],' \

'primem["greenwich", 0.0], unit["degree",0.017453292519943295],' \

'axis["longitude",east], axis["latitude",north]]'

crs = qgscoordinatereferencesystem(wkt)

assert crs.isvalid()

建立乙個無效的crs,然後使用create*功能之一對其進行初始化。在下面的示例中,我們使用proj字串初始化投影。

crs = qgscoordinatereferencesystem()

crs.createfromproj4("+proj=longlat +ellps=wgs84 +datum=wgs84 +no_defs")

assert crs.isvalid()

檢查crs的建立(即在資料庫中查詢)是否成功是明智的:isvalid()必須返回true

,否則它將無法找到資料庫。如果您是從qgis python控制台執行命令或正在開發外掛程式,則無需在意:已經為您設定了一切。

crs = qgscoordinatereferencesystem(4326)

print("qgis crs id:", crs.srsid())

print("postgis srid:", crs.postgissrid())

print("description:", crs.description())

print("projection acronym:", crs.projectionacronym())

print("ellipsoid acronym:", crs.ellipsoidacronym())

print("proj string:", crs.toproj4())

# check whether it's geographic or projected coordinate system

print("is geographic:", crs.isgeographic())

# check type of map units in this crs (values defined in qgis::units enum)

print("map units:", crs.mapunits())

輸出:

qgis crs id: 3452

postgis srid: 4326

description: wgs 84

projection acronym: longlat

ellipsoid acronym: wgs84

proj string: +proj=longlat +datum=wgs84 +no_defs

is geographic: true

map units: 6

您可以使用qgscoordinatetransform類實現不同空間參照系之間進行轉換。最簡單的使用方法是建立源crs和目標crs,並使用它們和當前投影物件 構造乙個qgscoordinatetransform的例項。然後只需呼叫transform()函式即可進行轉換。預設情況下,它會進行正向變換,但也能夠進行逆向變換。

crssrc = qgscoordinatereferencesystem(4326)    # wgs 84

crsdest = qgscoordinatereferencesystem(32633) # wgs 84 / utm zone 33n

xform = qgscoordinatetransform(crssrc, crsdest, qgsproject.instance())

# forward transformation: src -> dest

pt1 = xform.transform(qgspointxy(18,5))

print("transformed point:", pt1)

# inverse transformation: dest -> src

pt2 = xform.transform(pt1, qgscoordinatetransform.reversetransform)

print("transformed back:", pt2)

輸出:

transformed point: transformed back:

下乙個 

前乙個

使用sphinx使用read the docs提供的主題構建。

PyQGisCookbook 幾何體處理 八

如果您在pyqgis控制台之外,則此以下 段需要以下匯入 from qgis.core import qgsgeometry,qgspoint,qgspointxy,qgswkbtypes,qgsproject,qgsfeaturerequest,qgsdistancearea 表示空間要素的點,線...

opencv contrib 新增cuda支援

在這裡我不僅新增了 opencv contirb的擴充套件庫,同時也新增了cuda支援。首先,要想使用cuda模組,就必須要確保你的顯示卡是nvidia的。1.需要用到的庫 intel tbb 如 opencv h program project code opencv lib opencv3.1....

02 分支結構

bool資料型別 bool資料型別,是 一種表 示 非真即假的資料型別,布林型別的變數只有 yes和no兩個值。yes表 示表示式結果為真,no表 示表示式結果為假 bool a yes 在c預言中,認為非0即為真.分 語句中,經常使 用bool值做判斷,判斷執 行if語句還是else語句 迴圈結構...