как узнать тип слоя из источника мозаики mapbox - PullRequest
0 голосов
/ 07 июня 2019

Учитывая источник мозаики mapbox и имя слоя, Как я узнаю, что это за тип слоя (точка? Линия? Многоугольник?)

Я знаю, что знаю тип объекта заранее, прежде чем добавить слойна карту (map.addLayer)

if (layer-type == 'point') {
                             // for point only     
                                 map.addLayer({
                                                type: circle

                                                         })
                                 }

           else { 
                         // for both lineString and polygon
                                 map.addLayer({
                                                type: line
                                                         })
                                 }

1 Ответ

0 голосов
/ 07 июня 2019

Я нашел способ решить эту проблему.

Ссылка https://docs.mapbox.com/mapbox-gl-js/example/multiple-geometries/

Добавление нескольких геометрий из одного источника GeoJSON,

Ключ:

Вы добавляете все 3 слоя для точки, линии, многоугольника, с 3 различными идентификаторами слоя для каждого слоя, вы используете фильтр только для этого типа

        map.addLayer(
                "type": fill
                "filter": ["==", "$type", "Polygon"]
                 )

         map.addLayer(
                "type": line
                "filter": ["==", "$type", "LingString"]
                 )

         map.addLayer(
                "type": Circle, // or symbol
                "filter": ["==", "$type", "Point"]
                 )

У меня есть полный код по адресу: https://github.com/hoogw/arcgis_viewer/blob/master/public/javascripts/pbf/mapbox_common_share.js

...