You can use the UpdateEdgeReference tag to apply a Masked or Truncated flag to the edges of a feature.
UpdateEdgeReference has the following attributes:
• Flag: This tag will set the flag on an edge. There are three possible values for this :
• Masked: Edge will be flagged as Masked.
• Truncated: Edge will be flagged as Truncated.
• None: Edge will have neither a Masked or Truncated flag. Existing flags will be removed.
• The UpdateEdgeReference tag requires a <Filter> to identify the features to set the flag on.
• The filter must contain the GeometrySharesSpatial rule, either using the ReportSharedSpatials or ReportUnsharedSpatials tags.
• This filter will be applied on the destination map after all other mappings are completed.
• Rules are applied in the order encountered, so in the example below an edge used by both a LNDARE and an M_COVR will be marked as Truncated (The S-57 specification does not allow setting both Truncated AND Masked flags at the same time.)
This example maps a CANALS feature to CANALS feature and sets the Masked flag if the edge is shared with a LNDARE or the Truncated flag if shared with a M_COVR :
<Object Acronym="CANALS"> <MapObject> <MapObjectAcronym Acronym="CANALS"/> <UpdateEdgeReference Flag="Masked"> <Filter> <GeometrySharesSpatial ReportSharedSpatials="True"> <Filter> <ObjectAcronymIsEqualTo Acronym="LNDARE"/> </Filter> </GeometrySharesSpatial> </Filter> </UpdateEdgeReference> <UpdateEdgeReference Flag="Truncated"> <Filter> <GeometrySharesSpatial ReportSharedSpatials="True"> <Filter> <ObjectAcronymIsEqualTo Acronym="M_COVR"/> </Filter> </GeometrySharesSpatial> </Filter> </UpdateEdgeReference> </MapObject> </Object> |