Classe OGRPoint <ogr_geometry.h>
public OGRGéométrie
OGRPoint
Il 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. OGRPoint
Est 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
OGRPoint(const 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