这个 NYT Mapbox 地图是如何渲染的?
How is this NYT Mapbox map rendered?
下面的地图是一个高分辨率的县级 Mapbox 地图,具有动态变化的数据。当尝试使用其他工具渲染相同的高分辨率县地图时,需要大量的处理能力。为什么不同?
此外,我相信他们正在使用自定义图块集来渲染县的形状,但是数据是如何传递到可视化中的呢?这里的任何见解将不胜感激。 NYT Map Link
你想知道的都在他们main.js script
他们不使用传单,而是使用 mapbox-gl-js sdkVersion:"2.0.1"
他们用自己的风格制作地图
map = new mapboxGl.Map({
container: $wrap,
style: 'mapbox://styles/nytgraphics/cjnxfd2cy57nq2rqj8o3d7sl2',
scrollZoom: false,
boxZoom: false,
maxZoom: 10
});
然后他们根据加载的源创建填充层
function addSources() {
Object.keys(tilesets).forEach((name) => {
map.addSource(name, {
type: 'vector',
url: `mapbox://${tilesets[name]}`,
promoteId: 'geoid'
});
});
map.on('sourcedata', () => {
addLayers();
});
}
...
...
map.addLayer({
id: 'counties',
type: 'fill',
source: 'counties',
'source-layer': 'USA_Counties_With_RI',
paint: {
'fill-color': [
'case',
['has', ['get', 'geoid'], ['literal', colorLookup]],
['get', ['get', 'geoid'], ['literal', colorLookup]],
'#cccccc'
],
}
});
下面的地图是一个高分辨率的县级 Mapbox 地图,具有动态变化的数据。当尝试使用其他工具渲染相同的高分辨率县地图时,需要大量的处理能力。为什么不同?
此外,我相信他们正在使用自定义图块集来渲染县的形状,但是数据是如何传递到可视化中的呢?这里的任何见解将不胜感激。 NYT Map Link
你想知道的都在他们main.js script
他们不使用传单,而是使用 mapbox-gl-js sdkVersion:"2.0.1"
他们用自己的风格制作地图
map = new mapboxGl.Map({
container: $wrap,
style: 'mapbox://styles/nytgraphics/cjnxfd2cy57nq2rqj8o3d7sl2',
scrollZoom: false,
boxZoom: false,
maxZoom: 10
});
然后他们根据加载的源创建填充层
function addSources() {
Object.keys(tilesets).forEach((name) => {
map.addSource(name, {
type: 'vector',
url: `mapbox://${tilesets[name]}`,
promoteId: 'geoid'
});
});
map.on('sourcedata', () => {
addLayers();
});
}
...
...
map.addLayer({
id: 'counties',
type: 'fill',
source: 'counties',
'source-layer': 'USA_Counties_With_RI',
paint: {
'fill-color': [
'case',
['has', ['get', 'geoid'], ['literal', colorLookup]],
['get', ['get', 'geoid'], ['literal', colorLookup]],
'#cccccc'
],
}
});