Надпись Geo JSON Polygon в Mapbox - PullRequest
0 голосов
/ 16 июня 2020

Я не могу найти нигде в документации Mapbox GL JS о том, как добавить простую метку к многоугольнику Geo JSON, поэтому я работаю над несколькими найденными мною примерами.

My Geo JSON имеет такую ​​структуру:

const gj = {
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "id": "309"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              77.34374999999999,
              54.57206165565852
            ],
            [
              124.45312499999999,
              63.074865690586634
            ],
            [
              102.65625,
              64.16810689799152
            ],
            [
              77.34374999999999,
              54.57206165565852
            ]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
         "id": "310"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              81.9140625,
              48.22467264956519
            ],
            [
              124.45312499999999,
              51.39920565355378
            ],
            [
              122.6953125,
              59.88893689676585
            ],
            [
              81.9140625,
              48.22467264956519
            ]
          ]
        ]
      }
    }
  ]
}

Я пытаюсь пометить полигоны полем id.

Вот как это выглядит:

map.addSource("maine", {
            type: "geojson",
            data: gj,
          });
          map.addLayer({
            id: "maine",
            type: "fill",
            source: "maine",
            layout: {
              "text-field": ['get','id'],
            },
            paint: {
              "fill-color": "#088",
              "fill-opacity": 0.8,
            },
          });

Проблема, с которой я столкнулся, заключается в том, что когда я добавляю text-field к объекту layout, слой вообще не отображается. Я искал документы Mapbox и здесь, но я не могу найти ванильный способ добавить простую метку.

1 Ответ

0 голосов
/ 17 июня 2020

Я обнаружил, что если вы пытаетесь добавить метки к полигонам с помощью этой библиотеки, вам сначала нужно создать точечный слой из существующего набора данных и использовать его для меток.

Этот веб-сайт помог мне разобраться: http://fuzzytolerance.info/blog/2016/07/15/Generate-centroid-points-from-polygons-with-Turf-js/

...