Caminho de aprendizado da API GDAL C++ OGRGeometry curva abstrata classe base OGRCurve

Classe OGRCurve "ogrsf_frmts.h"

OGRCurveÉ uma classe base na biblioteca de geometria do OGR (OpenGIS Simple Features Reference Implementation), que representa um objeto de geometria de curva. É a classe base abstrata OGRLineStringe usada para representar objetos geométricos do tipo curvaOGRCircularString

Funções Públicas

ConstIterator start() const

Retorna o início do iterador de ponto

Fim do ConstIterator() const

Final de retorno do iterador de ponto

// 创建一个 OGRLineString 对象
    OGRLineString lineString;
    lineString.addPoint(0, 0);
    lineString.addPoint(1, 1);
    lineString.addPoint(2, 2);

    // 使用迭代器遍历 OGRLineString 的点集合
    for (OGRCurve::ConstIterator it = lineString.begin(); it != lineString.end(); ++it) {
        // 通过迭代器获取点坐标
        const OGRPoint* point = *it;
        double x = point->getX();
        double y = point->getY();

        // 在这里进行点坐标的处理
        // ...
    }

virtual void StartPoint(OGRPoint *) const = 0

Voltar ao início da curva

parâmetro:

poPoint  -- o ponto no qual especificar a posição inicial

virtual void EndPoint(OGRPoint *) const = 0

Retorne ao final da curva

parâmetro:

poPoint  -- o ponto no qual especificar a posição final

int virtual get_IsClosed () const

Retorna TRUE se a curva estiver fechada

Testa se a curva está fechada. Uma curva é fechada se seu ponto inicial é igual ao seu ponto final

Retorna: TRUE se desligado, FALSE caso contrário

virtual int getDimension() substituição const

Obter as dimensões deste objeto

Retorna: 0 para ponto, 1 para linha, 2 para superfície

virtual int getNumPoints() const = 0

Retorna o número de pontos da geometria da curva

Retorna: o número de pontos da curva

virtual  OGRBoolean  IsConvex() const

Retorna se a curva (fechada) formar uma forma convexa

Retorna: TRUE se a curva for convexa

// 创建一个OGRLineString对象作为示例
    OGRLineString lineString;
    lineString.addPoint(0, 0);
    lineString.addPoint(1, 1);
    lineString.addPoint(2, 0);

    // 判断曲线是否为凸曲线
    OGRBoolean isConvex = lineString.IsConvex();

virtual int isClockwise() const

Retorna TRUE se o anel tiver um enrolamento no sentido horário (ou menos de 2 lbs)

Retorna: verdadeiro se no sentido horário, falso caso contrário

virtual double get_Area() const = 0

Obter a área de uma curva (fechada)

Retorna: a área da feição em unidades quadradas do sistema de referência espacial utilizado

Centróide()

OGRErr OGRGeometry::Centroid ( OGRPoint * poPoint ) const

Calcular centróide geométrico

A posição do centróide é aplicada ao  objeto OGRPoint de entrada  . O centróide não está necessariamente dentro da geometria

Retorna OGRERR_NONE em caso de sucesso ou OGRERR_FAILURE em caso de erro

OGRRegisterAll(); // 注册所有OGR数据格式驱动

    // 创建一个OGRLineString对象作为示例
    OGRLineString lineString;
    lineString.addPoint(0, 0);
    lineString.addPoint(1, 1);
    lineString.addPoint(2, 2);

    // 获取质心
    OGRPoint centroid;
    OGRErr err = lineString.Centroid(&centroid);

Funções Estáticas Públicas

static  OGRCompoundCurve * CastToCompoundCurve ( OGRCurve  *puCurve )

Fundindo para uma curva composta A geometria de entrada será consumida e uma nova geometria retornada (ou NULL em caso de falha)

parâmetro:

poCurve  - geometria de entrada - propriedade passada para o método.

Retorna: nova geometria

static  OGRLineString  * CastToLineString ( OGRCurve  *poCurve )

Convertido em uma linestring A geometria de entrada será consumida e uma nova geometria retornada (ou NULL em caso de falha)

parâmetro:

poCurve  - geometria de entrada - propriedade passada para o método.

Retorna: a nova geometria

 OGRLinearRing estático  * CastToLinearRing ( OGRCurve  *poCurve )

Conversão para um anel linear A geometria de entrada será consumida e uma nova geometria retornada (ou NULL em caso de falha)

parâmetro:

poCurve  - geometria de entrada - propriedade passada para o método.

Retorna: a nova geometria

おすすめ

転載: blog.csdn.net/qq_69574549/article/details/132007612