wordpress制作主題容易嗎seo網(wǎng)站推廣排名
OGRCircularString Class????????<ogrsf_frmts.h>
OGRCircularString
類是 OGR 幾何庫中的一個類,用于表示圓弧字符串(circular string)類型的幾何圖形。圓弧字符串是由一系列圓弧段組成的幾何圖形,每個圓弧段由三個點定義:起始點、中間點和終止點。這些圓弧段可以連接成一個閉合的圓弧字符串,也可以構(gòu)成一個非閉合的曲線
Public Functions
OGRCircularString()
創(chuàng)建一個空的圓弧字符串
OGRCircularString(const?OGRCircularString?&other)
復(fù)制構(gòu)造函數(shù)
OGRCircularString?&operator=(const?OGRCircularString?&other)
賦值運算符
importFromWkb
virtual?OGRErr?importFromWkb(const?unsigned?char*,?size_t,?OGRwkbVariant,?size_t?&nBytesConsumedOut)?override
從已知的二進制數(shù)據(jù)中指定幾何圖形
參數(shù):
-
pabyData?-- 二進制輸入數(shù)據(jù)。
-
nSize?-- pabyData 的大小(以字節(jié)為單位),如果不知道,則為 -1。
-
eWkbVariant?-- 如果 wkbVariantPostGIS1,則對曲線幾何代碼進行特殊解釋
-
nBytesConsumptiondOut?-- 輸出參數(shù)。消耗的字節(jié)數(shù)。
返回:? OGRERR_NONE如果一切順利,否則OGRERR_NOT_ENOUGH_DATA、OGRERR_UNSUPPORTED_GEOMETRY_TYPE或OGRERR_CORRUPT_DATA中的任何一個都可能被退回
exportToWkb
virtual?OGRErr?exportToWkb(OGRwkbByteOrder,?unsigned?char*,?OGRwkbVariant?=?wkbVariantOldOgc)?const?override
將幾何圖形轉(zhuǎn)換為眾所周知的二進制格式
參數(shù):
-
eByteOrder?-- wkbXDR 或 wkbNDR 之一,分別表示 MSB 或 LSB 字節(jié)順序。
-
pabyData?-- 寫入二進制表示的緩沖區(qū)。此緩沖區(qū)的大小必須至少為?OGRGeometry::WkbSize()?字節(jié)。
-
eWkbVariant?-- 導(dǎo)出三維(或更多)幾何圖形時使用什么標準。默認的 wkbVariantOldOgc 是歷史的 OGR 變體。wkbVariantIso 是 ISO SQL/MM 中定義的變體,并被 OGC 用于 SFSQL 1.2。
返回:? 當前始終返回OGRERR_NONE
importFromWkt
virtual?OGRErr?importFromWkt(const?char**)?override
從已知文本數(shù)據(jù)中指定幾何圖形
參數(shù):
ppszInput?-- 指向源文本指針的指針。指針將更新為已使用文本之后的指針。
返回:? OGRERR_NONE如果一切順利,否則OGRERR_NOT_ENOUGH_DATA、OGRERR_UNSUPPORTED_GEOMETRY_TYPE或OGRERR_CORRUPT_DATA中的任何一個都可能被退回
exportToWkt
virtual?std::string?exportToWkt(const OGRWktOptions?&opts?=?OGRWktOptions(),?OGRErr?*err?=?nullptr)?const?override
將循環(huán)字符串導(dǎo)出到 WKT
參數(shù):
-
opts -- 輸出選項。
-
err?-- 指向錯誤代碼的指針(如果需要)。
返回:
表示此循環(huán)字符串的 WKT 字符串
IsValid
virtual?OGRBoolean?IsValid()?const?override
測試幾何圖形是否有效
返回:? 如果幾何圖形沒有點,則為 TRUE,否則為 FALSE
getEnvelope
virtual?void?getEnvelope(OGREnvelope?*psEnvelope)?const?override
計算并返回傳遞的 psEnvelope 結(jié)構(gòu)中此幾何圖形的邊界包絡(luò)
參數(shù):
psEnvelope?-- 放置結(jié)果的結(jié)構(gòu)
// 創(chuàng)建一個圓弧幾何對象OGRCircularString circularString;// 添加一些點到圓弧circularString.addPoint(0, 0);circularString.addPoint(1, 1);circularString.addPoint(2, 2);// 創(chuàng)建一個用于存儲外包絡(luò)矩形的結(jié)構(gòu)體OGREnvelope envelope;// 獲取圓弧的外包絡(luò)矩形circularString.getEnvelope(&envelope);// 打印外包絡(luò)矩形的坐標信息std::cout << "MinX: " << envelope.MinX << std::endl;std::cout << "MinY: " << envelope.MinY << std::endl;std::cout << "MaxX: " << envelope.MaxX << std::endl;std::cout << "MaxY: " << envelope.MaxY << std::endl;
getEnvelope
virtual?void?getEnvelope(OGREnvelope3D?*psEnvelope)?const?override
計算并返回傳遞的 psEnvelope 結(jié)構(gòu)中此幾何圖形的邊界包絡(luò) (3D)
參數(shù):
psEnvelope?-- 放置結(jié)果的結(jié)構(gòu)
clone
virtual?OGRCircularString?*clone()?const?override
創(chuàng)建此對象的副本
返回:? 具有與原始對象相同的幾何和空間參考系統(tǒng)的新對象實例
get_Length
virtual?double?get_Length()?const?override
返回曲線的長度
返回: 曲線的長度,如果曲線尚未初始化,則為零
CurveToLine
virtual?OGRLineString?*CurveToLine(double?dfMaxAngleStepSizeDegrees?=?0,?const?char?*const?*papszOptions?=?nullptr)?const?override
參數(shù):
-
dfMaxAngleStepSizeDegrees?-- 沿弧的最大步長(以度為單位),使用默認設(shè)置為零。
-
papszOptions?-- 選項作為以 null 結(jié)尾的字符串列表或 NULL。
返回:? 近似曲線的線串
Value
virtual?void?Value(double,?OGRPoint*)?const?override
沿曲線在給定距離處獲取點
參數(shù):
-
dfDistance?-- 沿采樣位置的曲線的距離。對于此曲線,此距離應(yīng)介于 0 和?get_Length()?之間。
-
poPoint?-- 要指定曲線位置的點
// 創(chuàng)建一個OGRPoint對象表示圓弧曲線的起點OGRPoint startPoint(0.0, 0.0);// 創(chuàng)建一個圓弧曲線對象,構(gòu)建一個圓弧OGRCircularString circularString;circularString.addPoint(&startPoint);circularString.addCircularArc(10.0, 0.0, 20.0);// 調(diào)用Value函數(shù)計算圓弧上的點double Distance = 15.0; // 假設(shè)給定一個長度OGRPoint resultPoint;circularString.Value(Distance, &resultPoint);// 打印計算得到的點坐標std::cout << "Point on circular arc at angle " << angle << ": " << resultPoint.getX() << ", " << resultPoint.getY() << std::endl;
get_Area
virtual?double?get_Area()?const?override
獲取(閉合)曲線的面積
getGeometryType
virtual?OGRwkbGeometryType?getGeometryType()?const?override
獲取幾何類型
getGeometryName
Virtual?const?char?*getGeometryName()?const?override
獲取幾何類型的 WKT 名稱
返回:用于此幾何類型的名稱,采用眾所周知的文本格式。返回的指針指向靜態(tài)內(nèi)部字符串,不應(yīng)修改或釋放
segmentize
virtual?void?segmentize(double?dfMaxLength)?override
修改幾何圖形,使其沒有比給定距離更長的線段
參數(shù):
dfMaxLength?-- 分割后 2 點之間的最大距離
// 創(chuàng)建一個圓弧幾何對象OGRPoint point1(0, 0);OGRPoint point2(5, 0);OGRPoint point3(10, 0);OGRCircularString circularString;circularString.addPoint(&point1);circularString.addPoint(&point2);circularString.addPoint(&point3);// 打印原始的圓弧幾何對象std::cout << "原始圓弧幾何對象:" << std::endl;char* wkt;circularString.exportToWkt(&wkt);std::cout << wkt << std::endl;CPLFree(wkt);// 使用最大長度為2.0的線段對圓弧幾何對象進行分段circularString.segmentize(2.0);// 打印分段后的圓弧幾何對象std::cout << "分段后的圓弧幾何對象:" << std::endl;circularString.exportToWkt(&wkt);std::cout << wkt << std::endl;CPLFree(wkt)
hasCurveGeometry
virtual?OGRBoolean?hasCurveGeometry(int?bLookForNonLinear?=?FALSE)?const?override
如果此幾何圖形是或具有曲線幾何圖形,則返回此幾何圖形
線性幾何類型:
- OGRPoint:點幾何類型,表示一個點。
- OGRLineString:線幾何類型,表示一條折線,由一系列連續(xù)的線段組成。
- OGRRing:環(huán)幾何類型,是線性幾何類型的特殊類型,表示閉合的線。環(huán)幾何類型可以用于表示簡單多邊形的外環(huán)或內(nèi)環(huán)。
曲線幾何類型:
- OGRCircularString:圓弧幾何類型,表示一個圓弧。
- OGRCompoundCurve:復(fù)合曲線幾何類型,由多個線段和圓弧組成的復(fù)雜曲線。
- OGRCurvePolygon:曲線多邊形幾何類型,表示由曲線組成的多邊形。曲線多邊形由外環(huán)和零個或多個內(nèi)環(huán)組成,這些環(huán)可以是線性環(huán)或圓弧環(huán)。
- 當
bLookForNonLinear
參數(shù)設(shè)置為FALSE
時,表示只查找線性的子幾何對象,不查找曲線類型的子幾何對象(包括圓弧、復(fù)合曲線等)。- 當
bLookForNonLinear
參數(shù)設(shè)置為TRUE
時,表示同時查找曲線類型和線性類型的子幾何對象
參數(shù):
bLookForNonLinear?-- 將其設(shè)置為 TRUE 以檢查幾何圖形是否為 CIRCULARSTRING 或包含 CIRCULARSTRING。
返回: 如果此幾何圖形是或具有曲線幾何圖形,則為 TRUE
OGRPoint point(10.0, 20.0);//檢查點是否具有曲線幾何(非線性)。if (point.hasCurveGeometry()) {std::cout << "The point contains curve geometry." << std::endl;} else {std::cout << "The point does not contain curve geometry." << std::endl;}
getLinearGeometry
virtual?OGRGeometry?*getLinearGeometry(double?dfMaxAngleStepSizeDegrees?=?0,?const?char?*const?*papszOptions?=?nullptr)?const?override
返回此幾何圖形的非曲線版本,可能是近似值
參數(shù):
-
dfMaxAngleStepSizeDegrees?-- 沿弧的最大步長(以度為單位),使用默認設(shè)置為零。
-
papszOptions?-- 選項作為以 null 結(jié)尾的字符串列表。
返回:? 新的幾何圖形
OGRPoint p1(0, 0);
OGRPoint p2(1, 1);
OGRPoint p3(2, 0);OGRCircularString cs;
cs.addPoint(&p1);
cs.addPoint(&p2);
cs.addPoint(&p3);// 轉(zhuǎn)換為線性幾何對象
OGRGeometry* linearGeom = cs.getLinearGeometry();
在上面的例子中,一開始設(shè)置的點在 OGRCircularString
中表示一個圓弧段,可以用中心點、起始點、終止點和半徑等信息來表示。但是當將 OGRCircularString
對象轉(zhuǎn)換為線性幾何對象時,圓弧段將被拆分成一組連續(xù)的直線段,這些直線段近似地組成了原始圓弧的形狀。