使用Mapbox加载样式时,出现“ Uncaught TypeError:无法读取未定义的属性'property'”

时间:2019-08-12 13:46:44

标签: javascript mapbox mapbox-gl-js

我正在使用mapbox-gl-js在我的网站上呈现地图。我在mapbox Studio中制作了地图样式,也使用了其他tileset。我最近更新了这些(相当大的)tileset,并更改了一些样式。在mapbox studio中,该样式效果很好,但是当我尝试在自己的网站上查看地图时(不变),我遇到了一些错误,例如“未捕获的TypeError:无法读取未定义的属性'type'”(或其他属性),并且地图不会呈现。

我已经检查了令牌和样式地址,但是我想问题是我的地图样式...这是它的URL:

mapbox:// styles / clemapbox / cjml1byyjq6jt2rni6wbjn3lt

这是最少的代码:

ValueError: too many values to unpack (expected 2)

1 个答案:

答案 0 :(得分:1)

这里的问题似乎是与您的样式和所使用的GL JS版本不兼容。具体来说,因为您的样式使用的是text-radial-offset样式属性,GL + JS直到+ v0.54.0才支持该样式属性。

当我更新您的示例所使用的GL JS版本时,我能够产生预期的结果:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.css' rel='stylesheet' />
        <title>MINIMAL TEST</title>
    </head>
    <body>
        <section id='map' style="width:500px;height:500px;"></section>

        <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.js'></script>
        <script>
            mapboxgl.accessToken = 'pk.eyJ1IjoiY2xlbWFwYm94IiwiYSI6ImNqOHVsbjdpdDBxM2wyd3JwcnVjZGtsZmsifQ.cv3w8BmCJAy0f0YF1ZFSTA';
                var map = new mapboxgl.Map({
                    container: 'map',
                    style: 'mapbox://styles/clemapbox/cjml1byyjq6jt2rni6wbjn3lt',
                });
        </script>
    </body>
</html>

通过Studio中的设置,可以方便地检查哪个客户端库与您的样式兼容:

studio screenshot


⚠️免责声明:我目前在Mapbox⚠️

工作