小部件---绑定小部件

鼠标滚轮的放大缩小是地图的加载就有的操作方法,绑定的是拉框放大,缩小,全图等方法。

先看看效果图(拉框放大为例)
放大前:

拉框放大:

放大后:

新添加模块:“dojo/query” “esri/toolbars/navigation”
  1. "dojo/query"绑定点击事件,注意:该点击事件凡是操作地图的要用query不能用on绑定
    例如:query("button").on("click",function(event){})
    on(dom.byId("button"),"click",function(event){})

  2. "esri/toolbars/navigation"实现对地图的操作
    首先创建地图操作对象,给but等绑定该对象的方法。例如放大、缩小等。

步骤:
  1. 加载地图

    var map = new Map("mapDiv");
    var layer = new ArcGISDynamicMapServiceLayer
    			("http://localhost:6080/arcgis/rest/services/ecology/beijing_2012_3/MapServer");
    map.addLayer(layer);
    
  2. 创建地图操作对象

    var navToolbar = new Navigation(map);
    
  3. 为btn绑定事件

    query("button").on("click",function(event){
    
  4. 获取btn的识别信息

    var value=this.innerHTML;
    
  5. switch选择合适的操作方法

    	switch(value){
    		case "平移":
    			navToolbar.activate(Navigation.PAN);
    			break;							
    		case "拉框缩小":
    			navToolbar.activate(Navigation.ZOOM_OUT);
    			break;
    		case "拉框放大":
    			navToolbar.activate(Navigation.ZOOM_IN);
    			break;
    	}
    
贴代码:
<!DOCTYPE html>
<html>

<head lang="en">
	<meta charset="UTF-8">
	<title></title>
	<link rel="stylesheet" href="https://js.arcgis.com/3.28/esri/css/esri.css"/>
	<script src="https://js.arcgis.com/3.28/"></script>
    <style type="text/css">
        .MapClass{
            width:100%;
            height:600px;
            border:1px solid #000;
        }
    </style>
    <script type="text/javascript">

        require(["esri/map",
            "esri/layers/ArcGISDynamicMapServiceLayer",
			"dojo/query","esri/toolbars/navigation",
            "dojo/domReady!"],
            function (Map,ArcGISDynamicMapServiceLayer,query,Navigation) {
                var map = new Map("mapDiv");
                var layer = new ArcGISDynamicMapServiceLayer
                ("http://localhost:6080/arcgis/rest/services/ecology/beijing_2012_3/MapServer");
                map.addLayer(layer);
				//创建地图操作对象
				var navToolbar = new Navigation(map);
				//为btn绑定事件
				query("button").on("click",function(event){
					//获得btn的识别信息
					var value=this.innerHTML;
					switch(value){
						case "平移":
							navToolbar.activate(Navigation.PAN);
							break;							
						case "拉框缩小":
							navToolbar.activate(Navigation.ZOOM_OUT);
							break;
						case "拉框放大":
							navToolbar.activate(Navigation.ZOOM_IN);
							break;
						case "全图":
							navToolbar.zoomToFullExtent();
							break;
						case "漫游":
							//默认是漫游操作
							navToolbar.deactivate();
							break;
					}
				})
                
            });


    </script>
</head>
<body class="tundra">
    <div id="mapDiv" class="MapClass"></div>
    <button>拉框放大</button>
    <button>拉框缩小</button>
    <button>平移</button>
    <button>全图</button> 
	<button>漫游</button>
</body>
</html>


结果图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值