嵌入式GeoJSON样式与Mapbox GL一起使用吗

Do embedded GeoJSON styles work with Mapbox GL?

本文关键字:一起 GL Mapbox GeoJSON 样式 嵌入式      更新时间:2023-09-26

是否可以利用GeoJSON数据源的内置properties属性来自动设置Mapbox GL映射的样式,而无需预先指定样式?

我有一个用例,我在GeoJSON LineString中动态加载需要特定颜色的数据,并且它已经内置了样式数据:

{"properties": {"color": "#ffff33"...

现在,我有一个相当不雅的设置,相关的颜色被解析出来,转换成一种样式,并在每次加载时添加到地图中:

    $scope.patternPropToStyle = function(props) {
      var id = 'pattern' + props.pid;
      var style = {
        "id": id,
        "type": "line",
        "source": id,
        "render": {
          "$type": "LineString",
          "line-join": "round",
          "line-cap": "round"
        },
        "paint": {
          "line-color": props.color,
          "line-width": 8
        }
      }
      $scope._mapStyle.layers.push(style);
      $scope._map.setStyle($scope._mapStyle);
    }

我觉得必须有更好的方法来做到这一点。

目前,Mapbox GL不支持no-simplestyle规范。考虑到最初的重点是矢量瓦片,目前GeoJSON支持仍然非常原始。simplestyle规范支持肯定在计划中。