我想将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来实现。感谢您的帮助,因为长期以来这一直是一个问题,我现在将所有的时间都用于解决问题。
作为最终的视觉效果,这就是我要在地图上完成的工作:
我想将geoJSON tileet作为图层添加到我的地图。 (这是天气雷达数据,每隔几分钟刷新一次,它将托管在我的服务器上。)我该如何进行样式设置?也许...
如果您的意思是“ GeoJSON源”而不是“ GeoJSON磁贴集”,则非常简单: