Parcours d'apprentissage de l'API C++ GDAL Classe de points OGRGeometry OGRPoint

Classe OGRPoint        <ogr_geometry.h>

public  OGRGéométrie

OGRPointIl s'agit d'une classe de la bibliothèque OGR (OpenGIS Simple Features Reference Implementation), utilisée pour représenter un objet géométrique ponctuel. OGR est une bibliothèque SIG (Système d'Information Géographique) open source pour la lecture, l'écriture et la manipulation de données vectorielles. OGRPointEst l'un des types géométriques de base utilisés pour représenter un point dans un espace à deux ou trois dimensions

Fonctions publiques

Point OGR

PointOGR()

créer un point vide

Point OGR

OGRPoint (double x, double y )         OGRPoint (double x, double y, double z )         OGRPoint (double x, double y, double z, double m )

Créer un point (2D, 3D, 4D) Les valeurs "m" sont souvent utilisées pour représenter des informations de mesure liées à la distance géométrique, à l'élévation, au temps ou à d'autres attributs quantitatifs

paramètre:

  • xIn  -- x

  • yIn  -- y

  • zIn  -- z

  • mIn  -- m

Point OGR

OGRPointconst  OGRPoint  &autre )

copier le constructeur

WkbSize

taille virtuelle_t WkbSize() substitution de const

Renvoie la taille de la représentation binaire associée

Cette méthode renvoie le nombre exact d'octets requis pour contenir une représentation binaire connue de cet objet géométrique. Il peut être légèrement coûteux à calculer pour des géométries complexes

Renvoie : la taille de la représentation binaire en octets

// 创建一个 OGRPoint 对象
OGRPoint point(10.0, 20.0);

// 计算 WKB 大小
size_t wkbSize = point.WkbSize();

cout << "WKB Size: " << wkbSize << " bytes" << endl;

importFromWkb

virtual  OGRErr  importFromWkb(const unsigned char*, size_t,  OGRwkbVariant , size_t &nBytesConsumedOut) override

spécifier la géométrie à partir de données binaires connues

paramètre:

  • pabyData  -- Données d'entrée binaires.

  • nSize  -- la taille de pabyData en octets, ou -1 si elle n'est pas connue.

  • eWkbVariant  - interprétation spéciale des codes de géométrie de courbe si wkbVariantPostGIS1

  • nBytesConsumptiondOut  -- paramètre de sortie. Le nombre d'octets consommés.

Renvoie : OGRERR_NONE si tout se passe bien, sinon l'un des OGRERR_NOT_ENOUGH_DATA, OGRERR_UNSUPPORTED_GEOMETRY_TYPE ou OGRERR_CORRUPT_DATA peut être renvoyé

    // 一个包含二进制 WKB 数据的 unsigned char 数组
    const unsigned char wkbData[] = {
        0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x40
    };

    // WKB 数据的字节大小
    size_t wkbSize = sizeof(wkbData);

    // 创建一个 OGRPoint 对象
    OGRPoint point;

    // 导入 WKB 数据到 OGRPoint 对象
    size_t bytesConsumed = 0;
    OGRErr err = point.importFromWkb(wkbData, wkbSize, wkbVariantOldOgc, bytesConsumed);

exportToWkb

virtual  OGRErr  exportToWkb( OGRwkbByteOrder , unsigned char*,  OGRwkbVariant  =  wkbVariantOldOgc ) const override

Convertir la géométrie en un format binaire bien connu

paramètre:

  • eByteOrder  -- Un parmi wkbXDR ou wkbNDR, indiquant respectivement l'ordre des octets MSB ou LSB.

  • pabyData  -- Le tampon dans lequel écrire la représentation binaire. La taille de ce tampon doit être d'au moins  OGRGeometry::WkbSize()  octets.

  • eWkbVariant  -- Quelle norme utiliser lors de l'exportation de la géométrie 3D (ou plus). Le wkbVariantOldOgc par défaut est la variante OGR historique. wkbVariantIso est une variante définie dans ISO SQL/MM et utilisée par l'OGC pour SFSQL 1.2.

Renvoie : renvoie actuellement toujours OGRERR_NONE

​
​    // 创建一个 OGRPoint 对象
    OGRPoint point(10.0, 20.0);

    // 定义一个 unsigned char 数组来存储导出的 WKB 数据
    unsigned char wkbData[100];

    // 导出 OGRPoint 对象为 WKB 数据
    OGRErr err = point.exportToWkb(wkbXDR, wkbData, wkbVariantOldOgc);

importFromWkt

remplacement virtuel  OGRErr  importFromWkt (const char **)

spécifier la géométrie à partir de données textuelles connues

paramètre:

ppszInput  -- Pointeur vers le pointeur du texte source. Le pointeur sera mis à jour vers le pointeur après le texte utilisé.

Renvoie : OGRERR_NONE si tout se passe bien, sinon l'un des OGRERR_NOT_ENOUGH_DATA, OGRERR_UNSUPPORTED_GEOMETRY_TYPE ou OGRERR_CORRUPT_DATA peut être renvoyé

// 定义一个用于存储 WKT 数据的指针
const char* wktData = "POINT (10 20)";

// 创建一个 OGRPoint 对象
OGRPoint point;

OGRErr err = point.importFromWkt(&wktData);

exportToWkt

virtual std::string exportToWkt(const OGRWktOptions &opts = OGRWktOptions(),  OGRErr  *err = nullptr) const override

Exporter des points vers WKT

paramètre:

  • OGRWktOptions &opts -- options de sortie .

  • err  – pointeur vers le code d'erreur (si nécessaire).

Renvoie : chaîne WKT représentant ce point

// 创建一个 OGRPoint 对象并设置坐标
OGRPoint point;
point.setX(10.0);
point.setY(20.0);

// 定义导出选项
OGRWktOptions wktOptions;

// 导出 OGRPoint 对象为 WKT 格式的字符串
string wktString = point.exportToWkt(wktOptions);

cout << "Exported WKT: " << wktString << endl;

Exported WKT: POINT (10 20)

obtenirDimension

virtual int getDimension() substitution de const

Obtenir les dimensions de cet objet

Renvoie : 0 pour le point, 1 pour la ligne, 2 pour la surface

OGRPoint point(10.0, 20.0, 30.0, 40.0);
int dimension = point.getDimension();
cout << "Point dimension: " << dimension << endl;

cloner

Virtual  OGRPoint  *clone() const override

créer une copie de cet objet

Renvoie : une nouvelle instance d'objet avec la même géométrie et le même système de référence spatiale que l'objet d'origine

vide

remplacement du vide virtuel vide ()

Effacer les informations sur la géométrie Cela restaure la géométrie à son état initial après la construction et avant l'affectation de la géométrie réelle

obtenirEnveloppe

Virtual void getEnvelope(OGREnvelope  *psEnvelope) const override

Calcule et renvoie l'enveloppe englobante de cette géométrie dans la structure psEnvelope passée

paramètre:

psEnvelope  -- la structure dans laquelle placer les résultats

obtenirEnveloppe

vide virtuel getEnvelope(OGREnvelope3D  *psEnvelope) const override

Calcule et renvoie l'enveloppe englobante (3D) de cette géométrie dans la structure psEnvelope transmise

paramètre:

psEnvelope  -- la structure dans laquelle placer les résultats

Est vide

OGRBoolean virtuel en ligne   IsEmpty() const override

Renvoie VRAI (non nul) si l'objet n'a pas de points

Renvoie : TRUE si l'objet est vide, FALSE sinon

Je suppose que tu aimes

Origine blog.csdn.net/qq_69574549/article/details/131925336
conseillé
Classement