缩放超过 13 会在 ArcGis JS 中引发分辨率错误 API

Zooming beyond 13 throws resolution error in ArcGis JS API

我有一个非常基本的地图示例: (JsFiddle)

require(["esri/map"],
    function(Map) {
        var baseMap = new Map("map", {
            basemap: "terrain",
            center: [10, 51],
            zoom: 12,
            maxZoom: 22
        });
    });

当我超过某个缩放级别时,我收到以下错误:

init.js:587 Uncaught TypeError: Cannot read property 'resolution' of undefined
at Object.__getExtentForLevel (init.js:587)
at Object._extentUtil (init.js:579)
at Object._wheelZoom (init.js:1254)
at Object.<anonymous> (init.js:63)
at Object.c [as onMouseWheel] (init.js:119)
at Object._fire (init.js:1279)
at Object._onMouseWheelHandler (init.js:1286)
at HTMLDivElement.<anonymous> (init.js:63)

使用相同代码(但基于 3.13)在内部托管的其他几个应用程序能够放大,直到可以看到所有街道名称和门牌号。

是什么导致了这些错误?

看起来 "terrain" 底图的分辨率没有最终用户希望的那么高,而且 ESRI 忘记限制该底图的缩放功能。

切换到 osmtopostreets 可以解决问题。

解决办法是把basemap: "terrain",改成basemap: "topo",