• 06 地图添加地图书签


    地图书签的功能字面理解就是暂时记录当前地图的范围和放大级别,在后续操作中如果想回到地图之前的状态,可以点击当时创建的书签来回到此状态,如下图所示:

    地图刚加载完成时是一副以成都为中心的地图,放大级别是10:

    我们将地图的中心拖动到南京,进一步放大地图,然后创建以“南京”为名称的书签,如图:

    创建好书签之后我们将地图随意拖动和放大,然后点击刚才创建的“南京”这个书签,地图中心和放大级别顿时切换回了创建南京这个书签时的状态,如图:

    下面讲解一下实现的主要代码:

    首先是创建一个基本地图,实例请参考第一篇文章《创建地图》,然后接下来的步骤和地图添加控件的步骤基本一致,因为书签功能也是一个控件。

    创建存放书签功能的容器:

    <body class="calcite">
    
    <div id="map"></div>
    
    <div class="bookmark-container">
    
    <div id="bookmarks"></div>
    
    </div>
    
    </body>

    细心地同学已经注意到,这次添加了两个div,他们是嵌套的关系,这是因为我们的书签控件由两部分组成,一部分是外面的书签面板,另一部分是面板内的创建书签的控件。接下来设置书签面板的样式:

    .bookmark-container {
    
    position: absolute;
    
    top: 100px;
    
    left: 15px;
    
    padding: 1rem;
    
    background: #ffffff;
    
    border-radius: 4px;
    
    border: 1px solid #eeeeee;
    
    }

    在此处同样也是没有设置id为“bookmarks”的容器的样式,这是因为此div的样式已经在esri.css文件中设置过,所以我们默认不设置就好。

    接下来我们引入“esri/dijit/Bookmarks”模块来创建书签控件,实例化一个书签,如下:

    var bookmarks = new Bookmarks({
    
    map: map,
    
    editable: true
    
    }, "bookmarks");

    至此,一个书签控件已经添加到地图上,完整的代码如下所示:

    <!DOCTYPE html>
    
    <html>
    
    <head>
    
    <meta charset="utf-8">
    
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
    
    <title>Bookmark Widget</title>
    
    
    
    <link rel="stylesheet" href="https://js.arcgis.com/3.25/esri/themes/calcite/esri/esri.css">
    
    <style>
    
    html, body, #map {
    
    height: 100%;
    
    margin: 0;
    
    padding: 0;
    
    }
    
    
    
    .bookmark-container {
    
    position: absolute;
    
    top: 100px;
    
    left: 15px;
    
    padding: 1rem;
    
    background: #ffffff;
    
    border-radius: 4px;
    
    border: 1px solid #eeeeee;
    
    }
    
    </style>
    
    
    
    <script src="https://js.arcgis.com/3.25/"></script>
    
    <script>
    
    require([
    
    "esri/map",
    
    "esri/dijit/Bookmarks",
    
    "dojo/domReady!"
    
    ],
    
    function (Map, Bookmarks){
    
    var map = new Map("map", {
    
    basemap: "osm",
    
    center: [104.072259,30.663527],
    
    zoom: 10
    
    });
    
    
    
    //创建地图书签控件
    
    var bookmarks = new Bookmarks({
    
    map: map,
    
    editable: true
    
    }, "bookmarks");
    
    
    
    });
    
    </script>
    
    </head>
    
    <body class="calcite">
    
    <div id="map"></div>
    
    <div class="bookmark-container">
    
    <div id="bookmarks"></div>
    
    </div>
    
    </body>
    
    </html>

    X北辰北的博客,想看更多内容,请移步我的个人博客:http://www.xbeichenbei.com/
  • 相关阅读:
    dock 安装部署和初级管理命令
    3 gogs+jenkins 触发远程构建及tomcat管理war包替换
    2 gitlab+jenkins maven自动打包更新
    1 gitlab+jenkins 自动化部署 持续集成
    Day7 面向对象进阶
    Day 6 面向对象初级
    day4 迭代器&生成器&递归&json&正则
    day5 常用模块
    day3 函数
    day2 数据及文件操作
  • 原文地址:https://www.cnblogs.com/xuqw/p/11794678.html
Copyright © 2020-2023  润新知