Modifications to GeoJSON for Use in OData

Any GeoJSON value that is used in OData SHOULD order the keys with type first, then coordinates, then any other keys. This improves streaming parser performance when parsing values on open types or in other cases where metadata is not present.

The GeoJSON [GeoJSON] standard requires that type LineString contains a minimum number of positions in its coordinates collection. This prevents serializing certain valid geospatial values. Therefore, in GeoJSON, the requirement that is stated as "For type 'LineString', the 'coordinates' member must be an array of two or more positions" is replaced with the requirement "For type 'LineString', the 'coordinates' member must be an array of positions" when used in OData.

All other arrays in GeoJSON are allowed to be empty, so no change is necessary. GeoJSON does require that any LinearRing contain a minimum of four positions. That requirement still holds that LinearRings can show up only in other arrays and that those arrays can be empty.

GeoJSON allows multiple types of coordinate reference systems (CRSs). In OData, only one of those types is allowed. In GeoJSON in OData, a CRS MUST be a named CRS. In addition, Open Geospatial Consortium CRS uniform resource names (URNs) are not supported. The CRS identifier MUST be a European Petroleum Survey Group (EPSG) system resource identifier (SRID) legacy identifier.