mapbox加载geojson报错error: Style is not done loading

发布时间 2023-04-28 21:45:36作者: 槑孒

Mapbox 加载 GeoJSON 地图时,遇到 error: Style is not done loading 错误通常是由于地图样式文件没有加载完成引起的。具体来说,可能是因为 Mapbox 样式文件中包含了某些需要加载的图片或者矢量图层,而这些图片或矢量图层尚未完全加载完成,导致无法渲染地图。

为解决此问题,可以尝试以下方法:

  1. 通过监听 style.load 事件,确保地图样式文件已经完全加载,再加载 GeoJSON 数据。
map.on('style.load', function() {
  // 其他地图样式文件的相关渲染
  map.addSource('my-data', { // 添加 GeoJSON 数据
    'type': 'geojson',
    'data': 'my-data.geojson'
  });
  map.addLayer({
    'id': 'my-data-layer',
    'type': 'circle',
    'source': 'my-data',
    'paint': {
      'circle-radius': 6,
      'circle-color': '#FF0000'
    }
  });
});
  1. 如果仍然存在问题,可以将加载 GeoJSON 数据的部分延迟一段时间(如200ms或更多),直到 Mapbox 样式文件完全加载完成后再加载数据。
map.on('style.load', function() {
  // 其他地图样式文件的相关渲染
  setTimeout(function() { // 延迟加载 GeoJSON 数据
    map.addSource('my-data', { // 添加 GeoJSON 数据
      'type': 'geojson',
      'data': 'my-data.geojson'
    });
    map.addLayer({
      'id': 'my-data-layer',
      'type': 'circle',
      'source': 'my-data',
      'paint': {
        'circle-radius': 6,
        'circle-color': '#FF0000'
      }
    });
  }, 200); // 延迟时间可以根据实际情况调整
});

以上是两种可能的解决方法,如果仍然无法解决问题,请检查您的地图样式文件是否存在错误或其他问题。