query*Features should preserve non-integer feature IDsΒ #2716
Open
Description
Here's a jsbin demonstrating the issue:
https://jsbin.com/bafewapela/edit?html,console,output
The GeoJSON spec states that features may have a top-level id property:
If a feature has a commonly used identifier, that identifier should be included as a member of the feature object with the name "id".
However, when I have a source with such a feature:
var markers = {
"type": "FeatureCollection",
"features": [{
"id": "my-feature-id", // <--- feature has an ID
"type": "Feature",
"properties": {
"marker-symbol": "theatre",
},
"geometry": {
"type": "Point",
"coordinates": [-77.038659, 38.931567]
}
}]
};
add it to the map and then get features back via queryRenderedFeatures
, the id
is gone. The properties
and geometry
properties are there, but id
is not. It would be really helpful if this special property were preserved.
The workaround is to duplicate IDs into properties.id
before adding features to the map, but this creates extra work and contradicts the GeoJSON spec.
mapbox-gl-js version: 0.19.1