У меня есть очень простой пример для карты: (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), могут увеличивать масштаб до тех пор, пока не будут видны все названия улиц и номера домов.
Что вызывает эти ошибки?
Похоже, что разрешение basemaps "ландшафта" не так велико, как можно было бы пожелать в качестве конечного пользователя, и ESRI забыл ограничить возможности масштабирования на этой базовой карте.
Переключение на osm
, topo
или streets
решает проблему.
Решение заключается в изменении basemap: "terrain",
на basemap: "topo",