Skip to content

Commit

Permalink
[sensorthings] Offer geometry for Datastream entities
Browse files Browse the repository at this point in the history
(note that I cannot find any public servers which support this
without errors!)

Fixes #59525
  • Loading branch information
nyalldawson committed Jan 31, 2025
1 parent 6bf6d04 commit 4cd4a0d
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/core/providers/sensorthings/qgssensorthingsdataitems.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 ) )
Expand Down
6 changes: 3 additions & 3 deletions src/core/providers/sensorthings/qgssensorthingsutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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" );
}
Expand All @@ -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:
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
Expand Down

0 comments on commit 4cd4a0d

Please sign in to comment.