描述
这个示例使用Map.extent property属性接收地图范围的左下角和右上角坐标 "书签"。
使用下列行创建地图:
var map = new esri.Map("map");
上面行中"Map"出现了三次。第一次(var map)是对象的名称,第二次 (esri.Map)是类的名称,第三次("map")是将包含地图的DIV的名称。
这个示例加入一个ArcGISTiledMapServiceLayer到底图,表示一个 cachedArcGIS Server地图服务,但是也可以使用 ArcGISDynamicMapServiceLayer。这种方式接收的地图的范围是相同的。
注意切片地图服务层的构造函数需要服务的REST端点的URL(http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer)。可以使用 Services Directory找到地图服务的URL。
下行代码为地图的showExtent事件增加了一个事件监听器:
dojo.connect(map, "onExtentChange", showExtent);
这意味着如果地图的范围被修改,回调函数showExtent将被调用。showExtent函数构建一个包含地图的两个角的坐标的字符串。
Lower left corner = (extent.xmin, extent.ymin)
Upper right corner = (extent.xmax, extent.ymax)
这两个角是需要知道用于地图的边界框的。showExtent函数的最后一行通过增加完整的字符串到'info' DIV在页面上显示坐标:
dojo.byId("info").innerHTML = s;
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd"> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 6 <meta http-equiv="X-UA-Compatible" content="IE=7" /> 7 <title>Create Map</title> 8 <link rel="stylesheet" type="text/css" href="styles.css" 9 href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css"> 10 <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script> 11 <script type="text/javascript"> 12 dojo.require("esri.map"); 13 function init(){ 14 var map = new esri.Map("map");//1对象名,2类名,3div的id名 15 var tiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer( 16 "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" 17 ); 18 map.addLayer(tiledMapServiceLayer); 19 //添加一个事件监听器的地图onExtentChange事件,地图范围一旦改变,回调函数showExtent就被调用 20 dojo.connect(map,"onExtentChange",showExtent); 21 } 22 //showExtent函数建立一个字符串,包含两个角落的地图坐标,这两个角来确定地图的边界矩形 23 //Lower left corner = (extent.xmin, extent.ymin) 24 //Upper right corner = (extent.xmax, extent.ymax) 25 function showExtent(extent){ 26 var s = ""; 27 s = "XMin: "+ extent.xmin + " " 28 +"YMin: " + extent.ymin + " " 29 +"XMax: " + extent.xmax + " " 30 +"YMax: " + extent.ymax; 31 //showExtent函数的最后一行显示在页面上添加完成字符串的“info”DIV坐标 32 dojo.byId("info").innerHTML = s; 33 } 34 dojo.addOnLoad(init); 35 </script> 36 </head> 37 38 <body class="tundra"> 39 <div id="map" style="900px;height:600px;border:1px solid #000"></div> 40 <div id="info" style="padding:5px;margin:5px;background-color:#eee;"></div> 41 Creates a map and adds an ArcGISTiledMapServiceLayer. On map onExtentChanged event you should see the extent printed below the map.<br /> 42 Map navigation using mouse: 43 <ul> 44 <li>Drag to pan</li> 45 <li>SHIFT + Click to recenter</li> 46 <li>SHIFT + Drag to zoom in</li> 47 <li>SHIFT + CTRL + Drag to zoom out</li> 48 <li>Mouse Scroll Forward to zoom in</li> 49 <li>Mouse Scroll Backward to zoom out</li> 50 <li>Use Arrow keys to pan</li> 51 <li>+ key to zoom in a level</li> 52 <li>- key to zoom out a level</li> 53 <li>Double Click to Center and Zoom in</li> 54 </ul> 55 </body> 56 </html>