diff --git a/src/OSMGeoProcessing/OSMToolHelper.cs b/src/OSMGeoProcessing/OSMToolHelper.cs index 8729f8a..93000a8 100644 --- a/src/OSMGeoProcessing/OSMToolHelper.cs +++ b/src/OSMGeoProcessing/OSMToolHelper.cs @@ -4322,6 +4322,7 @@ internal bool IsThisWayALine(string osmID, IFeatureClass lineFeatureClass, strin try { int osmIDPolygonFieldIndex = polygonFeatureClass.FindField("OSMID"); + int osmSupportingElementFieldIndex = polygonFeatureClass.FindField("osmSupportingElement"); string sqlPolyOSMID = polygonFeatureClass.SqlIdentifier("OSMID"); foreach (var relationItem in currentRelation.Items) @@ -4336,7 +4337,7 @@ internal bool IsThisWayALine(string osmID, IFeatureClass lineFeatureClass, strin { osmIDQueryFilter.WhereClause = polygonFeatureClass.WhereClauseByExtensionVersion(currentRelationMember.@ref, "OSMID", 2); - IFeatureCursor featureCursor = polygonFeatureClass.Search(osmIDQueryFilter, false); + IFeatureCursor featureCursor = polygonFeatureClass.Update(osmIDQueryFilter, false); comReleaser.ManageLifetime(featureCursor); IFeature foundPolygonFeature = featureCursor.NextFeature(); @@ -4346,6 +4347,12 @@ internal bool IsThisWayALine(string osmID, IFeatureClass lineFeatureClass, strin tag[] foundTags = _osmUtility.retrieveOSMTags(foundPolygonFeature, osmIDPolygonFieldIndex, ((IDataset)polygonFeatureClass).Workspace); + // set this feature from which we transfer to become a supporting element + if (osmSupportingElementFieldIndex > -1) + foundPolygonFeature.set_Value(osmSupportingElementFieldIndex, "yes"); + + featureCursor.UpdateFeature(foundPolygonFeature); + foreach (tag currentWayTag in foundTags) { // first one in wins