Как отследить пунктирный (не пунктирный) путь в Mapbox-gl-js? - PullRequest
0 голосов
/ 14 февраля 2019

Я использую последнюю версию Mapbox-gl-js и хотел бы отследить путь в виде равноотстоящих кругов, как это делает Google Maps, когда мы задаем «пешеходный» маршрут:

enter image description here

В Mapbox-gl-js я пробовал макеты с пунктирной и круговой диаграммой, но они не отвечают моим потребностям:

// Dash
map.addLayer({
  id: 'my-points',
  type: 'line',
  source: 'my-data',
  paint: {
    'line-color': 'gray',
    'line-width': 10,
    'line-dasharray': [1, 1],
  },
});

// Circles
map.addLayer({
  id: 'my-lines',
  type: 'circle',
  source: 'my-data',
  paint: {
    'circle-color': 'red',
    'circle-radius': 3,
  },
});

Пунктирный стиль учитывает эквидистантность, но не показывает круги:

enter image description here

Стиль кругов показывает круги, но только по указанным координатам, а не по всей длине маршрута.

enter image description here

Поэтому мой вопрос: есть ли способесть эквидистантные точки, или круги, или настраиваемые шаблоны, прорисованные вдоль пути geojson / lineString?

Спасибо!

1 Ответ

0 голосов
/ 14 февраля 2019

Если вы используете слой symbol, с каким-то круговым значком в качестве символа, он должен быть ближе к тому, что вы хотите.Что-то вроде:

{
   type: 'symbol',
   source: 'route',
   layout: {
     'icon-image': 'mycircle',
     'symbol-placement': 'line',
     'symbol-spacing': 50,
   }

https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers-symbol

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

...