Как изменить уровень масштабирования карты нажатием кнопки без использования dijit?

Я работаю с esri javascript API для создания веб-карты. Я хочу, чтобы рядом с картой была кнопка, позволяющая увеличивать / уменьшать масштаб (не стандартная кнопка esri). Я нашел много примеров, как это делается с помощью dijit (https://developers.arcgis.com/javascript/jssamples/toolbar_navigation.html), но я просто хочу использовать простую кнопку html, например: Увеличьте масштаб, а затем в части сценария скажите что-то вроде:

функция zoomin () {map.setZoom ()}

Теперь моя проблема в том, что я не знаю, как заставить это работать. Я предполагаю, что проблема в том, что после нажатия кнопки он не может найти функцию zoomin, поскольку она находится внутри require ([...]), function () {} Но я не могу поместить ее снаружи, так как код зависит от требовать.

Так что было бы здорово, если бы вы сказали мне, что делать.


person oddpodm    schedule 02.03.2016    source источник


Ответы (1)


Для увеличения масштаба карты используйте метод setZoom, увеличивая текущий уровень масштабирования для увеличения и уменьшая для уменьшения. Например:

//zoom out:
map.setZoom(map.getZoom()-1);

//zoom in:
map.setZoom(map.getZoom()+1);

В качестве примера, используя песочницу из приведенного выше примера Esri: http://developers.arcgis.com/javascript/sandbox/sandbox.html?sample=toolbar_navigation.

... замените строки 85 на 91 следующим образом:

      registry.byId("zoomin").on("click", function () {
        //navToolbar.activate(Navigation.ZOOM_IN);
        map.setZoom(map.getZoom()+1);
      });

      registry.byId("zoomout").on("click", function () {
        //navToolbar.activate(Navigation.ZOOM_OUT);
        map.setZoom(map.getZoom()-1);
      });

Это позволит кнопкам Zoom In и Zoom Out управлять картой.

Надеюсь это поможет.

person S Berg    schedule 02.03.2016
comment
Нет, я действительно не думаю, что это то, что я ищу. Моя панель инструментов навигации выглядит так: ‹div id = navToolbar› ‹button type = button onclick = zoomin ()› ‹i class = fa fa-search-plus› ‹/i› ‹/button› ‹/div› Итак, я не у меня нет всех кнопок додзё и т. д. Поэтому мне нужно заменить часть реестра, я думаю, но у меня это не работает - person oddpodm; 03.03.2016
comment
О, у меня все заработало. Просто нужно было изменить registry.byId на document.getElementbyId (...). Onclick = zoomin; И тогда это работает Спасибо - person oddpodm; 03.03.2016