如何在地图框图层中显示堆叠位置?

时间:2019-11-29 16:27:33

标签: mapbox mapbox-gl-js mapbox-gl mapbox-marker

我对mapboxgl还是陌生的,他试图创建一个允许用户随时间过滤点的地图。我使用数据定制了本教程,以启动并运行初始地图:

https://docs.mapbox.com/help/tutorials/show-changes-over-time/

一切工作都非常好,直到我加载数据并意识到许多点共享相同的坐标。

一些谷歌搜索发现了这个答案:

Multiple markers - Same coordinates

使用偏移或旋转的想法都是合理的解决方案。不幸的是,我不清楚如何在加载数据时将其应用于数据。我相信脚本的相关部分是:

map.on('load', function() {
  map.addLayer({
    id: 'year',
    type: 'circle',
    source: {
      type: 'geojson',
      data: './grandpascan.geojson' // replace this with the url of your own geojson
    },
    paint: {
      'circle-radius': [
        'interpolate',
        ['linear'],
        ['number', ['get', 'Pages']],
        0, 4,
        5, 24
      ],
      'circle-color': [
        'interpolate',
        ['linear'],
        ['number', ['get', 'Pages']],
        0, '#2DC4B2',
        1, '#3BB3C3',
        2, '#669EC4',
        3, '#8B88B6',
        4, '#A2719B',
        5, '#AA5E79'
      ],
      'circle-opacity': 0.8
  },

如果这是正确的,我该如何识别这些样式点?尽管我可能完全误解了它们如何组合在一起,但它们似乎并不是可以在CSS中轻松解决的标记。

谢谢!

1 个答案:

答案 0 :(得分:2)

此处的代码是在地图中创建circle类型的图层。您可以使用circle-translate属性来偏移位置。

如果要使用CSS变换来偏移标记,则应将其创建为地图外部HTML中存在的Marker对象。