将geoJSON tileet添加为Mapbox GL-JS中的图层

问题描述 投票:0回答:1

我想将geoJSON tileet作为图层添加到我的地图。 (这是天气雷达数据,每隔几分钟刷新一次,它将托管在我的服务器上。)我该如何进行样式设置?也许这似乎是一个愚蠢的问题,但我已经四处搜寻,没有解决方案。我看到了this Mapbox GL-JS vector tileset example,但未显示如何从geoJSON生成矢量图块集。

我要做的就是添加图层并按颜色对其进行样式设置。

我在Mapbox中可以找到的closest示例代码是:

   map.on('load', function() {
    map.addSource('mapbox-terrain', {
        type: 'vector',
        url: 'mapbox://mapbox.mapbox-terrain-v2'
    });
    map.addLayer({
        'id': 'terrain-data',
        'type': 'line',
        'source': 'mapbox-terrain',
        'source-layer': 'contour',
        'layout': {
            'line-join': 'round',
            'line-cap': 'round'
        },
        'paint': {
            'line-color': '#ff69b4',
            'line-width': 1
        }
    });
});

但是,无论我如何尝试对其进行编辑,我都不知道如何将源更改为geoJSON。 (例如,我尝试将type更改为geoJSON,并将URL更改为.JSON文件。唯一的结果是,即使使用默认样式,也不会显示任何内容。

这里是我的数据如何排列,以及我想如何设置样式:

   {
    "type": "Feature",
    "geometry": {      "type": "Polygon",
      "coordinates": [
        [
          [-98.04771180146541, 29.69276273017396],
          [-98.04989507423406, 29.691557294069924],
          [-98.05007422056916, 29.691808116379576],
          [-98.04787303016978, 29.69298847287841],
          [-98.04771180146541, 29.69276273017396]
        ]
      ]
     },
     "properties": {
        "sweep": 1,
        "sweepTime": "2017-02-20T04:40:19Z",
        "elevAngle": 0.519104,
        "value": 21.0, //  << this value determines color of polygon styling (0-70)
        "radialAng": 238.16986,
        "begGateRan": 2249.9092,
        "endGateRan": 2499.8992,
        "heightRel": 20.683022,
        "heightASL": 213.62143
     }
   }

我希望我不会感到困惑,但是在this Stack Overflow answer中,史蒂夫·本内特(Steve Bennett)向某人解释了一个相关主题:

据我所知,Mapbox-GL-JS使用GeoJSON-VT自动将客户端加载的GeoJSON文件转换为浏览器中的矢量图块

所以看来这是可以做到的-但是怎么办?大多数文档都是关于使用Mapbox Studio的,而我只是想通过Javascript来实现。感谢您的帮助,因为长期以来这一直是一个问题,我现在将所有的时间都用于解决问题。

作为最终的视觉效果,这就是我要在地图上完成的工作:

radar image

我想将geoJSON tileet作为图层添加到我的地图。 (这是天气雷达数据,每隔几分钟刷新一次,它将托管在我的服务器上。)我该如何进行样式设置?也许...

mapbox mapbox-gl-js
1个回答
0
投票

如果您的意思是“ GeoJSON源”而不是“ GeoJSON磁贴集”,则非常简单:

© www.soinside.com 2019 - 2024. All rights reserved.