https://codepen.io/m12n/pen/XWNRZMg?editors=0010
mapboxgl.accessToken =
"pk.eyJ1IjoiaW50ZWxsaWdlbmNlZnVzaW9uIiwiYSI6ImNrM2l2cnk1NzBibGIzbm5yaHNycXltZmYifQ.tPEnnW5NAPmInCJDYVfJxA";
var map = new mapboxgl.Map({
container: "map",
style: "mapbox://styles/mapbox/dark-v10",
zoom: 8,
center: [-71.4935, 41.5852]
});
map.on("load", function () {
map.addSource("countries-no-simplification", {
type: "vector",
url: "mapbox://mapbox.country-boundaries-v1"
});
map.addLayer({
id: "countries-simplification-data",
type: "fill",
source: "countries-no-simplification",
"source-layer": "country_boundaries",
paint: {
"fill-color": "#ff69b4",
"fill-opacity": 0.3
}
});
});上面的代码和笔显示了MapBox县边界的用法,在这里,我用颜色和低不透明度填充这一层。
因为源有多个世界观,我得到了两个边界在有争议的国家同时显示,因此得到的效果显示(更强的色彩)。
最终,我实际上想要应用一个基于特定数据点的颜色,但是现在我很高兴能够只呈现一个单一的边界(单一的世界视图?)。
我似乎不知道如何才能从源头得到一组这样的边界。
发布于 2022-02-28 12:30:47
您可以应用过滤器来保持特定世界视图(US、CN、IN等)的边界。移除有争议的边界。示例:
map.addLayer({
id: "countries-simplification-data",
type: "fill",
source: "countries-no-simplification",
"source-layer": "country_boundaries",
filter: [
'all',
['match', ['get', 'worldview'], ['all', 'US'], true, false],
["!=", "true", ["get", "disputed"]],
],
paint: {
"fill-color": "#ff69b4",
"fill-opacity": 0.3
}
});https://stackoverflow.com/questions/66455645
复制相似问题