mapbox / mapbox-gl-js

Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL
https://docs.mapbox.com/mapbox-gl-js/
Other
11.23k stars 2.23k forks source link

mapbox-gl raise some excptions when using data-driven paint property ["get", "height"] with "symbol-z-offset" #13293

Open linze99 opened 1 month ago

linze99 commented 1 month ago

mapbox-gl-js version:3.7.0

browser:Chrome

Steps to Trigger Behavior

1.Add a symbol layer 2.setting paint property: "symbol-z-offset": ["get", "height"],(with height property in properties) 3.zoom in an out

https://codepen.io/Ze-Lin-the-encoder/pen/ZEPZwNo?editors=1111

mapboxgl.accessToken = "your token";

const data = {
  type: "FeatureCollection",
  features: [
    {
      geometry: {
        coordinates: [-74.01495191750769, 40.706305039438774],
        type: "Point"
      },
      type: "Feature",
      properties: { name: "test point1", height: 8 }
    },
    {
      geometry: {
        coordinates: [-74.01443955717765, 40.70647273530287],
        type: "Point"
      },
      type: "Feature",
      properties: { name: "test point2", height: 5 }
    }
  ]
};

const map = new mapboxgl.Map({
  container: "map",
  projection: "globe",
  zoom: 18,
  center: [-74.013575, 40.706069],
  pitch: 57,
  bearing: 27
});
map.on("style.load", () => {
  map.addSource("test_labels", {
    type: "geojson",
    data: data
  });
  map.addLayer({
    id: "test_labels",
    type: "symbol",
    source: "test_labels",
    layout: {
      "text-field": "{name}",
      "text-size": 15
    },
    paint: {
      "symbol-z-offset": ["get", "height"],
      "symbol-elevation-reference": "ground",
      "text-color": "#000000"
    }
  });
  console.log(map.getStyle());
});

https://jsbin.com/

Expected Behavior

截屏2024-09-29 22 16 59

Actual Behavior

When zoom in or out, mapbox-gl raise some exceptions,then the symbox dispeared

截屏2024-09-29 22 17 07
stepankuzmin commented 1 month ago

This looks like a bug, thanks for creating an issue, @linze99.

kamami commented 1 month ago

I have the exact same issue with mapbox-gl: "^3.7.0". image