InfoWindow

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

图片说明
  1. 属性

图片说明
  1. 事件

图片说明

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>

结果:

图片说明