2016-05-03 6 views
0

Я пытаюсь воспроизвести захват ниже в Mapbox GL. Цвета добавляются для удобства чтения, однако возможность настройки цветов не является обязательной. Ключевым аспектом являются различные веса линий.mapbox gl geojson style

MWE mapbox js

Я прочитал о стилизации в MapBox GL here и there. Чтобы добавить столько слоев стиля, что есть разные веса, это не вариант. Я попробовал это с двумя тысячами LineStrings, и выступления неприемлемы.

Я просканировал несколько проблем github there о стилях, управляемых данными в mapbox GL, но я не могу понять, нужно ли мне то, что мне нужно, на дорожной карте.

Ниже MWE GEOJSON Я использовал для создания изображения выше.

{ 
    "type": "FeatureCollection", 
    "features": [ 
    { 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [[2.3420237, 48.9437736], 
         [2.3430249, 48.9462233], 
         [2.3428777, 48.9469687]] 
     }, 
     "type": "Feature", 
     "properties": { 
     "color": "#0000FF", 
     "weight": 5 
     } 
    }, 
    { 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [[2.3880359, 48.9077387], 
         [2.3885364, 48.9072262], 
         [2.3886376, 48.9071376], 
         [2.3891088, 48.9066521]] 
     }, 
     "type": "Feature", 
     "properties": { 
     "color": "#FF0000", 
     "weight": 15 
     } 
    } 
    ] 
} 

ответ

0

Там в документации here о добавлении стайлинг lineString от GeoJSON. Вот дополнительный пример, который демонстрирует две объекта LineString на карте с двумя различными весами/цветами: http://bl.ocks.org/tristen/5f807d44726b401b727f3ab06c7ed864

Я попытался его с двумя тысячами объекта LineString и выступлениями не являются приемлемым.

Более совершенный формат данных для тысяч точек - это преобразование вашего GeoJSON в vector tiles. Пример добавления слоя векторной плитки к карте с использованием Mapbox GL JS здесь: https://www.mapbox.com/mapbox-gl-js/example/vector-source/

+0

Спасибо, например, я уже протестировал этот подход, и в итоге он оказался плохим. Я попробую с векторной плитки. В то же время, знаете ли вы, есть ли (есть/будут) способ читать свойства стиля линии непосредственно из геойсона? –

+0

В настоящее время не с типом геометрии 'lineString', но это скоро изменится с [стилями, управляемыми данными] (https://github.com/mapbox/mapbox-gl-js/issues/2430). Вскоре вы сможете настроить свойства краски для типа линии со значениями, определенными в каждом объекте 'properties'. – tristen