Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sensorthings] Offer geometry for Datastream entities #60375

Merged
merged 2 commits into from
Feb 5, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
[sensorthings] Offer geometry for Datastream entities
(note that I cannot find any public servers which support this
without errors!)

Fixes #59525
nyalldawson committed Jan 31, 2025
commit 4cd4a0d518579c21bab82d2cf183c7f4031428fe
4 changes: 2 additions & 2 deletions src/core/providers/sensorthings/qgssensorthingsdataitems.cpp
Original file line number Diff line number Diff line change
@@ -155,10 +155,10 @@ QVector<QgsDataItem *> QgsSensorThingsEntityContainerItem::createChildren()
compatibleTypes << Qgis::WkbType::MultiPolygon << Qgis::WkbType::NoGeometry;
break;
case Qgis::GeometryType::Unknown:
compatibleTypes << Qgis::WkbType::Point << Qgis::WkbType::MultiPoint << Qgis::WkbType::MultiLineString << Qgis::WkbType::MultiPolygon;
compatibleTypes << Qgis::WkbType::Point << Qgis::WkbType::MultiPoint << Qgis::WkbType::MultiLineString << Qgis::WkbType::MultiPolygon << Qgis::WkbType::NoGeometry;
break;
case Qgis::GeometryType::Null:
compatibleTypes << Qgis::WkbType::NoGeometry;;
compatibleTypes << Qgis::WkbType::NoGeometry;
}

for ( const Qgis::WkbType wkbType : std::as_const( compatibleTypes ) )
6 changes: 3 additions & 3 deletions src/core/providers/sensorthings/qgssensorthingsutils.cpp
Original file line number Diff line number Diff line change
@@ -607,7 +607,6 @@ QString QgsSensorThingsUtils::geometryFieldForEntityType( Qgis::SensorThingsEnti
case Qgis::SensorThingsEntity::Invalid:
case Qgis::SensorThingsEntity::Thing:
case Qgis::SensorThingsEntity::HistoricalLocation:
case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::Sensor:
case Qgis::SensorThingsEntity::Observation:
case Qgis::SensorThingsEntity::ObservedProperty:
@@ -619,6 +618,7 @@ QString QgsSensorThingsUtils::geometryFieldForEntityType( Qgis::SensorThingsEnti
case Qgis::SensorThingsEntity::FeatureOfInterest:
return QStringLiteral( "feature" );

case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::MultiDatastream:
return QStringLiteral( "observedArea" );
}
@@ -632,12 +632,12 @@ bool QgsSensorThingsUtils::entityTypeHasGeometry( Qgis::SensorThingsEntity type
case Qgis::SensorThingsEntity::Invalid:
case Qgis::SensorThingsEntity::Thing:
case Qgis::SensorThingsEntity::HistoricalLocation:
case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::Sensor:
case Qgis::SensorThingsEntity::Observation:
case Qgis::SensorThingsEntity::ObservedProperty:
return false;

case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::Location:
case Qgis::SensorThingsEntity::FeatureOfInterest:
case Qgis::SensorThingsEntity::MultiDatastream:
@@ -653,12 +653,12 @@ Qgis::GeometryType QgsSensorThingsUtils::geometryTypeForEntity( Qgis::SensorThin
case Qgis::SensorThingsEntity::Invalid:
case Qgis::SensorThingsEntity::Thing:
case Qgis::SensorThingsEntity::HistoricalLocation:
case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::Sensor:
case Qgis::SensorThingsEntity::Observation:
case Qgis::SensorThingsEntity::ObservedProperty:
return Qgis::GeometryType::Null;

case Qgis::SensorThingsEntity::Datastream:
case Qgis::SensorThingsEntity::Location:
case Qgis::SensorThingsEntity::FeatureOfInterest:
return Qgis::GeometryType::Unknown;
Original file line number Diff line number Diff line change
@@ -380,6 +380,7 @@ void QgsSensorThingsSourceWidget::setCurrentEntityType( Qgis::SensorThingsEntity
mComboGeometryType->addItem( QgsIconUtils::iconForWkbType( Qgis::WkbType::MultiPoint ), tr( "Multipoint" ), QVariant::fromValue( Qgis::WkbType::MultiPoint ) );
mComboGeometryType->addItem( QgsIconUtils::iconForWkbType( Qgis::WkbType::MultiLineString ), tr( "Line" ), QVariant::fromValue( Qgis::WkbType::MultiLineString ) );
mComboGeometryType->addItem( QgsIconUtils::iconForWkbType( Qgis::WkbType::MultiPolygon ), tr( "Polygon" ), QVariant::fromValue( Qgis::WkbType::MultiPolygon ) );
mComboGeometryType->addItem( QgsIconUtils::iconForWkbType( Qgis::WkbType::NoGeometry ), tr( "No Geometry" ), QVariant::fromValue( Qgis::WkbType::NoGeometry ) );
setCurrentGeometryTypeFromString( mSourceParts.value( QStringLiteral( "geometryType" ) ).toString() );
}
else if ( geometryTypeForEntity == Qgis::GeometryType::Null && mComboGeometryType->findData( QVariant::fromValue( Qgis::WkbType::NoGeometry ) ) < 0 )