arcgis api for JavaScript学习-infoWindow(窗口)

it2024-07-10  44

InfoWindow

InfoWindow控件是一个带有小尾巴的窗口,小尾巴指向一个位置或感兴趣的要要素,其本质就是一个HTML弹出框,InfoWindow进程包括Graphic的属性信息,如果Graphic定义了InfoTemplate,则点击Graphic显示InfoTemplate所定义的,每个地图仅有一个infoWindow,无构造函数。 主要方法

属性

事件

4.示例:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>infoWindow</title> <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/tundra/tundra.css"/> <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css"/> <script type="text/javascript" src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script> <style type="text/css"> .MapClass { width: 100%; height: 600px; border: 1px solid #000; position: relative; } </style> <script type="text/Javascript"> require(["esri/map","esri/dijit/OverviewMap","esri/dijit/Scalebar", "esri/dijit/Bookmarks", "esri/dijit/BookmarkItem", "dojo/on"], function (Map, OverviewMap, Scalebar, Bookmarks, BookmarkItem, on) { var MyMap = new Map("MyMapDiv",{ logo:false //取消esri的logo }); var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/TestServer/MyMapService/MapServer"); MyMap.addLayer(layer); var MapViewer = new OverviewMap({ attachTo: "top-right",//鹰眼显示位置 maximizeButton: true,//显示最大化按钮 map: MyMap,//设置显示鹰眼图的基础图 visible: true,//显示鹰眼图可见按钮 width: 150,//设置鹰眼的div大小 height: 150 }); MapViewer.startup(); var scale = new Scalebar({ map: MyMap, attachTo: "bottom-left", scalebarUnits: "english" }); scale.show(); //创建书签跳转的位置 var bookmarkItem = new BookmarkItem({ "extent": {//范围也可以看服务里面的信息,有范围,但是如果叠加了其它的地图如esri的地图,就不行,因为esri发布的服务和我们自己发布的服务的坐标不一样,就不能正确的显示 "xmin": 510380,//左下角x并不是指的经纬度 "ymin": 3985438,//左下角y "xmax": 510836,//右上角x "ymax": 3985752,//右上角y "spatialReference": {//空间参考 "wkid": 2437 } }, "name": "San Diego" }); //创建书签 var books = new Bookmarks({ map:MyMap, editable: true }, document.getElementById("bookmarks")); books.addBookmark(bookmarkItem); books.show(); //地图加载初始化窗口大小 on(MyMap, "load", function () { MyMap.infoWindow.resize(250, 100); }); on(MyMap, "click", function (e) { var lat = e.mapPoint.x;//获取点击的xy var lon = e.mapPoint.y; //设置标题 MyMap.infoWindow.setTitle("Coordinates"); //设置内容 MyMap.infoWindow.setContent('<div style="background-color:lightblue; color: white;">' + "lat/lon:" + lat.toFixed(2) + "," + lon.toFixed(2) + "," + "<br>screen x/y:" + e.screenPoint.x + "," + e.screenPoint.y + "</div>"); //显示 MyMap.infoWindow.show(e.mapPoint, MyMap.getInfoWindowAnchor(e.screenPoint)); }) }); </script> </head> <body> <div id="MyMapDiv" class="MapClass"></div> <div id="bookmarks"></div> </body> </html>

结果:

最新回复(0)