Я следовал учебному пособию Mapbox для Android, чтобы рисовать полигоны с помощью geoJSON: https://www.mapbox.com/android-docs/maps/overview/data-driven-styling/#geojson
Это работает, но я подумал, что не могу назвать "идентификатор полигона" в geoJSON из слоя.
Я хочу вызвать это для определения того, что я стою на полигонах с местоположением смартфона.
Как я могу назвать "идентификатор полигона" в geoJSON из слоя?
Здесьмои коды (я написал на Kotlin, и я знаю Android Java):
// draw polygon from geoJSON
private fun drawPolygon(map: MapboxMap) {
val source = GeoJsonSource("sourceId", GEOJSON_STRING) //following
map.addSource(source)
val layer = FillLayer("layerId", "sourceId")
map.addLayer(layer)
findPolygonId(layer)
}
// find polygon id from layer
findPolygonId(layer: Layer) {
val id = layer.find(geoJSON.id) <--- unknown code
}
GEOJSON_STRING выглядит следующим образом:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": 1, <-----------------I want call this!
"properties": {
"stroke": "#000000",
"stroke-width": 3.3,
"stroke-opacity": 0,
"fill": "#000000",
"fill-opacity": 1
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
Lng1,
Lat1
],
[
Lng2,
Lat1
],
[
Lng2,
Lat3
],
[
Lng1,
Lat3
],
[
Lng1,
Lat1
]
]
]
}
},
{
"type": "Feature",
"id": 2, <-----------------I want call this!
"properties": {
"stroke": "#000000",
"stroke-width": 3.3,
"stroke-opacity": 0,
"fill": "#000000",
"fill-opacity": 1
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
[
Lng4,
Lat4
],
[
Lng5,
Lat4
],
[
Lng5,
Lat6
],
[
Lng4,
Lat6
],
[
Lng4,
Lat4
]
]
]
}
}
]
}