在 MapBox GL/JavaScript 中为点和多边形创建图例
Create a legend in MapBox GL/JavaScript for both points and polygons
我正在通过密切关注他们 choropleth example 使用 MapBox GL 制作我的第一张地图。在我的数据中,我有一个多边形和一些点,我想为它们提供不同形状(一条线和一个点)和颜色的图例。我坚持使用颜色部分,因为多边形颜色由 'line-color' 给出,而点的颜色是 'circle-color'。您知道如何在下面的代码中添加这种区分吗?
map.on('load', function() {
// the rest of the code will go in here
var layers = ['torpigna', 'bar'];
layers.forEach(function(layer) {
var color = map.getPaintProperty(layer, 'circle-color');
var item = document.createElement('div');
var key = document.createElement('span');
key.className = 'legend-key';
key.style.backgroundColor = color;
var value = document.createElement('span');
value.innerHTML = layer;
item.appendChild(key);
item.appendChild(value);
legend.appendChild(item);
});
});
谢谢,
雅格布
您需要查询图层的类型:
layers.forEach(function(layerId) {
var layer = map.getLayer(layerid);
if (layer.type === 'circle') {
... layer.paint['circle-fill']
} else if (layer.type === 'fill') {
... layer.paint['line-color']
}
您可能会发现这段代码很有用,因为它的作用与您要实现的目标非常相似:https://github.com/City-of-Melbourne/Data3D/blob/master/src/js/mapVis.js
我正在通过密切关注他们 choropleth example 使用 MapBox GL 制作我的第一张地图。在我的数据中,我有一个多边形和一些点,我想为它们提供不同形状(一条线和一个点)和颜色的图例。我坚持使用颜色部分,因为多边形颜色由 'line-color' 给出,而点的颜色是 'circle-color'。您知道如何在下面的代码中添加这种区分吗?
map.on('load', function() {
// the rest of the code will go in here
var layers = ['torpigna', 'bar'];
layers.forEach(function(layer) {
var color = map.getPaintProperty(layer, 'circle-color');
var item = document.createElement('div');
var key = document.createElement('span');
key.className = 'legend-key';
key.style.backgroundColor = color;
var value = document.createElement('span');
value.innerHTML = layer;
item.appendChild(key);
item.appendChild(value);
legend.appendChild(item);
});
});
谢谢, 雅格布
您需要查询图层的类型:
layers.forEach(function(layerId) {
var layer = map.getLayer(layerid);
if (layer.type === 'circle') {
... layer.paint['circle-fill']
} else if (layer.type === 'fill') {
... layer.paint['line-color']
}
您可能会发现这段代码很有用,因为它的作用与您要实现的目标非常相似:https://github.com/City-of-Melbourne/Data3D/blob/master/src/js/mapVis.js