open-contracting / infrastructure

Documentation of the Open Contracting for Infrastructure Data Standards (OC4IDS) Toolkit
https://standard.open-contracting.org/infrastructure/
Other
6 stars 0 forks source link

Location data for roads #233

Open duncandewhurst opened 4 years ago

duncandewhurst commented 4 years ago

CoST Ukraine capture the following location data for infrastructure projects relating to roads:

Currently this data is modelled using the locations field in OC4IDS with one location object per road, e.g.

{
  "id": "3926",
  "description": "516+200-646+200",
  "gazetteer": {
    "scheme": "М-03"
  },
  "address": {
    "region": "Харківська"
  }
}

I've recommended that the mapping of the road identifier to .gazetteer is updated as follows, based on the index the road identifier is drawn from being known. E.g. for a road in the state roads index:

  "gazetteer": {
    "scheme": "UA-SRI",
    "id": "M03"
  },

This issue is to consider modelling for the list of start/end locations, since .description isn't a good mapping.

Terminology used in linear referencing systems for start and end locations includes 'from-measure' and 'to-measure' (from arcgis) and 'fromToLocation' (from ISO 19148).

jpmckinney commented 4 years ago

We can maybe have:

{
  "id": "3926",
  "descriptors": [
    {
      "scheme": "kilometer-range",
      "value": [53.2, 57.1]
    },
    {
      "scheme": "kilometer-range",
      "value": [67.6, 70.1]
    }
  ],
  "gazetteer": {
    "scheme": "UA-SRI",
    "id": "М-03"
  },
  "address": {
    "region": "Харківська"
  }
}
  1. There are many, many ways to describe a location. We have fields for three very common means (geometry, gazetteer, physical address), but there are others like kilometer marker ranges, an item's warehouse location, etc. I don't think we eventually want a dozen miscellaneous descriptors, so an array of user-definable descriptors seems better.
  2. I don't understand why the notation is kilometer + meter instead of kilometer . (decimal point) meter. The latter is just using regular numeric notation... Also, with JSON, we can use an array to express an interval ([min, max]) instead of a string.

Note that the array would be wholeListMerge, which is fine.