This is not a software-specific question, but rather a question about how to represent some concepts in a GML LineString.
It has to be GML, for policy reasons.
Consider a GML LineString consisting of contiguous segments. I'm trying to represent attributes that are valid for a segment, but not necessarily valid for the whole LineString.
As an example, it might be a car route along several roads. Each road on the route could have some different properties (surface, minimum and maximum speeds, width, surface roughness). My modelling scenario is quite different to the car route, so I'm not looking for something that is specific to that domain (e.g. the OSM model isn't going to work for this - it is not GML for a start).
Conceptually, the LineString could have some default attributes, which are overridden by per-segment attributes. In the car route example, the route might have a default speed, but some segments are higher or lower speed.
The concepts I've explored so far:
- Using a LineString, and adding numbered attributes / elements.
- Using a MultiLineString or collection, where each LineString is a single segment, attaching the attributes / elements to a LineString.
- Using Points to implicitly represent the LineString, such that the attributes / elements on the Point apply to the next Point.
None of those seems very satisfactory (loss of explicit representation, possible gaps in the collection cases, non-obvious intent).
Is there published guidance on performing this kind of modelling (e.g. from OGC or ISO), or failing that, anything that is likely to be better supported in common tools / GML profiles than what I've already identified?