Получить параметр geoJSON из слоя Mapbox - Android - PullRequest
0 голосов
/ 12 декабря 2018

Я следовал учебному пособию 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
            ]
          ]
        ]
      }
    }
  ]
}
...