mapbox - 如何从 Mapbox 国家边界获取一组国家边界

标签 mapbox mapbox-gl-js mapbox-gl

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 县边界的用法,我在其中用颜色和低不透明度填充图层。

因为来源有多个世界观,所以我同时显示了有争议国家的两个边界,因此得到了显示的效果(颜色更深)。

最终我实际上想根据特定数据点应用颜色,但现在我很高兴能够只渲染一组边界(单一世界观?)。

我似乎无法弄清楚如何从源代码中只获得一组这样的边界。

最佳答案

您可以应用过滤器来保留特定世界观(美国、中国、印度等)的边界并删除有争议的边界。示例:

  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
    }
  });

关于mapbox - 如何从 Mapbox 国家边界获取一组国家边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66455645/

相关文章:

leaflet - 访问 Mapbox 中要素组中图层的 geojson 属性

Mapbox gl : On mouse hover on layers change cursor pointer style

javascript - 如何从 Mapbox GL JS 获取可用的 Canvas

mapbox - 无法让自定义标记在 Mapbox GL JS 中工作

javascript - 升级传单 map 库的步骤

ios - map 框 : How to change MGLFillStyleLayer "fill-outline-width"

mapbox-gl-js - 在类型为 'fill' : Can we control the stroke thickness? 的 mapbox gl js 层中

javascript - 单击 map 框标记后,有没有办法从中获取信息?

reactjs - 在 React 中使用 Mapbox 映射变量的正确类型是什么?

ios - 在 iOS 上创建 Mapbox map View 的快照?