mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
[OGC API provider] Implement geometryColumnName() when Part 5 is available
This commit is contained in:
parent
a57ceb0392
commit
19451dd2a7
@ -501,6 +501,8 @@ bool QgsOapifProvider::empty() const
|
||||
return !getFeatures( request ).nextFeature( f );
|
||||
};
|
||||
|
||||
QString QgsOapifProvider::geometryColumnName() const { return mShared->mGeometryColumnName; }
|
||||
|
||||
bool QgsOapifProvider::setSubsetString( const QString &filter, bool updateFeatureCount )
|
||||
{
|
||||
QgsDebugMsgLevel( QStringLiteral( "filter = '%1'" ).arg( filter ), 4 );
|
||||
@ -588,6 +590,7 @@ void QgsOapifProvider::handleGetSchemaRequest( const QString &schemaUrl )
|
||||
if ( schemaRequest.errorCode() == QgsBaseNetworkRequest::NoError )
|
||||
{
|
||||
mShared->mFields = schema.mFields;
|
||||
mShared->mGeometryColumnName = schema.mGeometryColumnName;
|
||||
if ( schema.mWKBType != Qgis::WkbType::Unknown )
|
||||
mShared->mWKBType = schema.mWKBType;
|
||||
}
|
||||
|
||||
@ -81,6 +81,8 @@ class QgsOapifProvider final : public QgsVectorDataProvider
|
||||
|
||||
bool empty() const override;
|
||||
|
||||
QString geometryColumnName() const override;
|
||||
|
||||
enum class FilterTranslationState
|
||||
{
|
||||
FULLY_CLIENT,
|
||||
@ -211,6 +213,9 @@ class QgsOapifSharedData final : public QObject, public QgsBackgroundCachedShare
|
||||
//! Server filter
|
||||
QString mServerFilter;
|
||||
|
||||
//! Geometry column name
|
||||
QString mGeometryColumnName;
|
||||
|
||||
//! Translation state of filter to server-side filter.
|
||||
QgsOapifProvider::FilterTranslationState mFilterTranslationState = QgsOapifProvider::FilterTranslationState::FULLY_CLIENT;
|
||||
|
||||
|
||||
@ -206,6 +206,7 @@ void QgsOapifSchemaRequest::processReply()
|
||||
{
|
||||
if ( QString::fromStdString( jOgcRole.get<std::string>() ) == QLatin1String( "primary-geometry" ) )
|
||||
{
|
||||
mSchema.mGeometryColumnName = QString::fromStdString( key );
|
||||
mSchema.mWKBType = Qgis::WkbType::Unknown;
|
||||
if ( val.contains( "format" ) )
|
||||
{
|
||||
|
||||
@ -36,6 +36,9 @@ class QgsOapifSchemaRequest : public QgsBaseNetworkRequest
|
||||
//! Fields
|
||||
QgsFields mFields;
|
||||
|
||||
QString mGeometryColumnName;
|
||||
//! Geometry column name;
|
||||
|
||||
//! Geometry type;
|
||||
Qgis::WkbType mWKBType = Qgis::WkbType::NoGeometry;
|
||||
};
|
||||
|
||||
@ -2912,6 +2912,8 @@ class TestPyQgsOapifProvider(QgisTestCase, ProviderTestCase):
|
||||
]
|
||||
self.assertEqual(values, [["feat.1", "foo", 1, 1.25, True]])
|
||||
|
||||
self.assertEqual(vl.dataProvider().geometryColumnName(), "geometry")
|
||||
|
||||
def _testPart5SchemaSingleOrMulti(
|
||||
self, geometryFormat, geojsonGeom, expectedWkbType, expectedWkt
|
||||
):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user