1

我正在尝试实现一个 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 缩放按钮(放大)相同的功能。怎么做?

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

        });
    });

非常感谢

4

2 回答 2

2

首先,您必须订阅“zoombutton”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

于 2014-10-26T17:25:07.920 回答
1

看到这个: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);});
于 2014-10-27T03:44:22.750 回答