Dear all, Currently, the complex features GeoJSON encoder [1] doesn't encode XML (GML) attributes. For example, something like:
(...) <gsml:positionalAccuracy> <gsml:CGI_NumericValue> <gsml:principalValue *uom="urn:ogc:def:uom:UCUM:m"*>*200.0* </gsml:principalValue> </gsml:CGI_NumericValue> </gsml:positionalAccuracy> (...) Will be encoded like this in GeoJSON: (...) "properties": { "gsml:positionAccuracy": { "gsml:CGI_NumericValue": { "gsml:principalValue": *100* } } } (...) As far as I know, there is no standard or specification that defines how the concept of complex features attributes (GML attributes) should be encoded, the GeoJSON specification is quite permissible: *A Feature object has a member with the name "properties". The value of the properties member is an object (any JSON object or a JSON null value).* My suggestion is to encode XML\GML attributes as an array of values, using the example above: (...) "properties": { "gsml:positionAccuracy": { "gsml:CGI_NumericValue": { "gsml:principalValue": [ *100.0, { "uom": "urn:ogc:def:uom:UCUM:m" }* ] } } } (...) So, simple values (like 100.0) represent the value of the node and objects (like *{"uom": "urn:ogc:def:uom:UCUM:m"}*) represent the attributes of the node. This keeps the semantic and doesn't add too much burden to the clients. Any feedback \ comments on this are welcome :) Kind regards, Nuno Oliveira [1] https://github.com/geoserver/geoserver/blob/master/src/wfs/src/main/java/org/geoserver/wfs/json/ComplexGeoJsonWriter.java
_______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel