【问题标题】:how to make the zoom button of my own on an esri map如何在 esri 地图上制作我自己的缩放按钮
【发布时间】:2014-12-21 08:28:59
【问题描述】:

我正在尝试实现一个 zomm 按钮(和其他按钮)并使用 esri javascript api。

我隐藏了 esri 默认按钮并想使用我自己的进行放大。 在这里看到它:http://jsfiddle.net/nxuq857d/

    var map;
    // esri map initialization
    require(["esri/map", "esri/geometry/Point",
    "esri/symbols/SimpleMarkerSymbol", "esri/symbols/SimpleLineSymbol",
    "esri/graphic", "dojo/domReady!"], function (Map, Point,
    SimpleMarkerSymbol, SimpleLineSymbol,
    Graphic, Color) {
            map = new Map("map", {
            center: [0, 0],
            zoom: 5,
            basemap: "topo",
            slider: true // set to false to remove default zoom buttons
        });
    });

我希望它执行与默认 esri 缩放按钮(放大)相同的功能。该怎么做?

另外,我在从地图功能之外引用地图时遇到问题......所以如果你也能提供帮助的话。如何从其他功能引用地图并执行例如放大功能。 之后:

        });
    });

非常感谢

【问题讨论】:

  • 请询问您是否需要更多信息... ;)

标签: javascript dictionary esri arcgis-js-api


【解决方案1】:

首先,您必须订阅“缩放按钮”DOM 元素的点击事件。 您可以使用原生 api 或 jquery ($('#zoombutton').on) 或 dojo/on 模块之类的东西来完成。

在事件回调函数中,您可以访问您的地图,因为您在全局范围内对其进行了初始化,并且只需设置地图的下一级 (https://developers.arcgis.com/javascript/jsapi/map.html#setlevel)。

函数示例:

document.getElementById('zoombutton').addEventListener('click', function(){
   map.setLevel(map.getLevel()+1);
});

如果你想要更可重用和模块化的东西,你可以在这里查看更多说明https://developers.arcgis.com/javascript/jshelp/intro_custom_dijit.html

【讨论】:

  • 请编辑您的答案以添加对您的代码如何工作以及它如何解决 OP 问题的解释。很多 SO 发帖人都是新手,看不懂你贴的代码。
【解决方案2】:

看到这个: http://jsfiddle.net/moizhb/rLwaytnp/

你只需要订阅点击事件并调用 setZoom

on(dom.byId("zoomInBtn"), "click", function(evt){map.setZoom(map.getZoom()+1);});
on(dom.byId("zoomOutBtn"), "click", function(evt){map.setZoom(map.getZoom()-1);});

【讨论】:

  • 谢谢。顺便说一句...您是否知道如何修复放大/缩小自定义按钮以像默认按钮一样快速工作?如果您在 jsfiddle 上尝试您的代码,您会看到它们滞后,您必须单击、等待、单击。而不是单击,单击,单击默认值。非常感谢
猜你喜欢
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2013-11-28
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
相关资源
最近更新 更多