Map Feedback API Developer's Guide

Road Feedback

The user is visiting HERE.com and notices that a footpath at the end of Bruchwiesenstraße in Darmstadt (WGS-84 longitude and latitude 8.656664011955286,49.86079425922911) is missing.

HTTP Header Fields

Map Feedback API POST requests require the following HTTP header fields:

Group-Id: FGx1AWaAzKOo0imNkLmf
Auth-Service-Id: here_app
Auth-Identifier: {YOUR_APP_ID}
Auth-Secret: {YOUR_APP_CODE}
Content-Type: application/vnd.here.layerObjectList+json; charset=UTF-8
Content-Disposition: application/vnd.here.layerObjectList+json; charset=UTF-8
Accept: application/vnd.here.layerObjectList+json
Accept-Charset: charset=UTF-8

Request

https://maphub.cit.api.here.com/feedback/

The POST request requires the following POST body.

[{
  "type":"Point",
  "coordinates":[8.656664011955286,49.86079425922911,0],
  "properties":{
  "v": "2.7",
    "appId": "{YOUR_APP_ID}",
    "roadname": "Bruchwiesenstraße",
    "type": "5",
    "details": "There is a foot path missing.",
    "error": 10,
    "isocc": "DEU",
    "languageCode": "deu",
    "speedCat": "8",
    "dir": "0",
    "zoomLevel": 18,
    "pageURL": "https://here.com/?map=8.656025,49.861,18,0,normal"
  }
}]

Response

The response to the request contains:

  • a globally unique ID (GUID) that identifies the submitted revision
  • id for tracking the status of the revision
  • the information submitted in the feedback
  • timestamp and layerID information
[
  {
    "layerId": "grp|wiki|WIKI_MAP_FEEDBACK",
    "lastUpdateTS": 1418201944918,
    "coordinates": [
      8.656664011955286,
      49.86079425922911,
      0
    ],
    "guid": "354516c9e571332eaa13ae1b3fc344a825dc1d56",
    "id": -19753,
    "type": "Point",
    "createdTS": 1418201944918,
    "properties": {
      "zoomLevel": 18,
      ],
      "type": "5",
      "error": 10,
      "languageCode": "deu",
      "dir": "0",
      "v": "2.7",
      "appId": "{YOUR_APP_ID}",
      "speedCat": "8",
      "isocc": "DEU",
      "details": "There is a foot path missing.",
      "pageURL": "https://here.com/?map=8.656025,49.861,18,0,normal",
      "roadname": "Bruchwiesenstraße"
    }
  }
]

Additional request bodies follow, which are examples of Road feedback for errors occurring on the map. The HTTP Headers field values and the request are the same as used in the previous example so these are not shown with each of the following feedback examples. The response information to these requests is similarly structured to the information shown in the previous example, but with the information details from the respective request bodies.

Road Does Not Exist

[{
  "type": "Point",
  "coordinates": [
  -76.99894738197327,
  39.137360312659595,
  0
  ],
  "properties": {
  "appId": "dIJiXIMv56AfJZCvZ3jl",
  "details": "The road does not exist anymore at that location",
  "error": 12,
  "referenceIds": ["18464777"],
  "isocc": "USA",
  "currentValues": {
     "roadname": "Ednor Rd.",
     "languageCode": "eng"
  },
  "v": "2.7"
  }
}]

Shape of Road Changed

[{
  "type": Line",
  "coordinates": [
   [-122.48369693756104, 37.83381888486939],
   [-122.48348236083984, 37.83317489144141],
   [-122.49163627624512, 37.832564787218985],
   [-122.49223709106445, 37.83337825839438],
   [-122.49378204345702, 37.83368330777276]
  ],
  "properties": {
  "appId": "dIJiXIMv56AfJZCvZ3jl",
  "details": "The shape of the road has changed",
  "error": 11,
  "referenceIds": ["38464777"],
  "isocc": "USA",
  "currentValues": {
     "roadname": "Braeburn Road",
     "languageCode": "eng",
     "coordinates":[[-122.49163627624512, 37.832564787218985], [-122.49223709106445, 37.83337825839438]]
  },
  "v": "2.7"
  }
}]

Road Closed to Through Traffic

[{
  "type": "Point",
  "coordinates": [
  -76.99894738197327,
  39.137360312659595,
  0
  ],
  "properties": {
  "appId": "dIJiXIMv56AfJZCvZ3jl",
  "details": "Road is closed for through traffic, Braeburn Road does not go through to Redcoat. The road is truncated by iron fences from street view",
  "error": 11,
  "referenceIds": ["38464777"],
  "isocc": "USA",
  "access": 16,
  "currentValues": {
     "access": 144,
     "roadname": "Braeburn Road"
  },
  "v": "2.7"
  }
}]

Bitfields and Masks

Bitfields are decimal values that provide options specified by individual bits. This allows you to combine the set of values into one single value, while you can control each option distinctly by turning the related bit on or off. The active values sum up to a single decimal value.

For example:

There is vehicle access for a road by Automobile, Bus, Taxi, Delivery, Truck, and Emergency, meaning that the current access bitfield is 1+2+4+64+256+512 or bitfield values (least significant bit left) 001101000111‬. To report that Truck access has been restricted, you can change the access value 001100000111 (or leaving the 64 when summing up: 1+2+4+256+512).

You can use bitmasks to only change individual options.

For individual updates to bitfields, where the original value is unknown, a ...Mask property is provided to indicate which bits set in the property are to be affected.

For simplicity and compatiblity, if no mask is provided or the mask is 0, all the complete bitfields are updated.

For example:

To turn off an individual option, the value for the bit in question needs to be set to 0 and the corresponding mask bit needs to be set to 1 to indicate that only that bit from the value is to be changed, so the access is set to 000000000000 while the mask is set to 000001000000. A shortcut that is safe to follow is described in the following rule: To turn an option off, set the value to 0 and the mask to the value you want to switch off (for example 64, as in the example above). To activate any option, you need to set both the value and the mask to the same number (64 for both to activate truck access, without knowing if this option is already active).

The following road-specific properties are linked to bitfield values:

No Trucks Allowed on Road

[{
  "type":"Point",
  "coordinates":[8.656664011955286,49.86079425922911,0],
  "properties": {
    "v":  "2.6",
    "appId": "{YOUR_APP_ID}",
    "error": 11,

    "referenceIds" : ["52391246"],
    "access": 0,
    "accessMask": 64,
    "details": "No trucks allowed."
  }
}]

Enable Trucks to be Allowed on Road

The feedback using an access mask is as follows:
[{
  "type":"Point",
  "coordinates":[8.656664011955286,49.86079425922911,0],
  "properties": {
    "v":  "2.6",
    "appId": "{YOUR_APP_ID}",
    "error": 11,

    "referenceIds" : ["52391246"],
    "access": 64,
    "accessMask": 64,
    "details": "Enable truck access."
  }
}]

Set Road to Unpaved

The feedback using oda and an odaMask to set a road as unpaved is as follows:
[{
  "type":"Point",
  "coordinates":[8.656664011955286,49.86079425922911,0],
  "properties": {
    "v":  "2.6",
    "appId": "{YOUR_APP_ID}",
    "error": 11,

    "referenceIds" : ["52391246"],
    "oda": 0,
    "odaMask": 1,
    "details": "Set road to unpaved."
  }
}]

Designate a Ramp

The feedback using oda and an odaMask to designate a ramp is as follows:
[{
  "type":"Point",
  "coordinates":[8.656664011955286,49.86079425922911,0],
  "properties": {
    "v":  "2.6",
    "appId": "{YOUR_APP_ID}",
    "error": 11,

    "referenceIds" : ["52391246"],
    "oda": 8,
    "odaMask": 8,
    "details": "Flag a ramp."
  }
}]

For more details about tracking the feedback status, see Tracking Feedback Status.

You cannot use this account to purchase a commercial plan on Developer Portal, as it is already associated to plans with different payment methods.

To purchase a commercial plan on Developer Portal, please register for or sign in with a different HERE Account.

Something took longer than expected.

The project should be available soon under your projects page.

Sorry, our services are not available in this region.

Something seems to have gone wrong. Please try again later.

We've detected that your account is set to Australian Dollars (AUD).
Unfortunately, we do not offer checkouts in AUD anymore.
You can continue using your current plan as normal, but to subscribe to one of our new plans,
please register for a new HERE account or contact us for billing questions on selfservesupport@here.com.