当前位置: 首页 > article >正文

【入门01】arcgis api 4.x 创建地图、添加图层、添加指北针、比例尺、图例、卷帘、图层控制、家控件(附完整源码)

1.效果

2.代码 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link rel="stylesheet" href="https://js.arcgis.com/4.30/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.30/"></script>
    <style>
        /* 容器大小 */
        #viewDiv {
            position: absolute;
            left: 0;
            top: 0;
            width: 100vw;
            height: 100vh;
        }
    </style>
    <script>
        require([
            "esri/WebMap",
            "esri/views/MapView",
            "esri/widgets/Compass",
            "esri/widgets/ScaleBar",
            "esri/widgets/Legend",
            "esri/layers/FeatureLayer",
            "esri/widgets/Expand",
            "esri/widgets/LayerList",
            "esri/widgets/Home",
            "esri/widgets/Swipe",
        ], (
            WebMap,
            MapView,
            Compass,
            ScaleBar,
            Legend,
            FeatureLayer,
            Expand,
            LayerList,
            Home,
            Swipe
        ) => {

            // 底图
            const map = new WebMap({
                portalItem: {
                    id: "56b5bd522c52409c90d902285732e9f1"
                }
            });

            // view
            const view = new MapView({
                container: "viewDiv", // 指定容器
                map: map, // 底图

                // 显示范围
                extent: {
                    xmin: -9177811,
                    ymin: 4247000,
                    xmax: -9176791,
                    ymax: 4247784,
                    spatialReference: 102100 //空间坐标系
                }
            });

            // 添加图层
            const featureLayer = new FeatureLayer({
                url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Landscape_Trees/FeatureServer/0"
            });
            map.add(featureLayer);

            // 指北针
            const compass = new Compass({
                view: view
            })
            // 比例尺
            const scaleBar = new ScaleBar({
                view: view
            })
            // 图例
            const legend = new Legend({
                view: view
            })
            // 图层控制控件
            const layerList = new LayerList({
                view: view,
            });
            // 扩展控件
            const llExpand = new Expand({
                view: view,
                content: layerList,
                expanded: false,
            });

            // 添加控件到地图
            view.ui.add(compass, 'top-left')
            view.ui.add(scaleBar, "bottom-left")
            view.ui.add(legend, "bottom-right")
            view.ui.add(llExpand, "top-left");

            // 家控件
            view.ui.add(new Home({
                view
            }), "top-left")

            // 卷帘控件
            view.ui.add(new Swipe({
                view: view,
                leadingLayers: [featureLayer], //比较图层
                trailingLayers: [map], //底图
                direction: "horizontal", //滚轴方向
                position: 90, //滚轴位置 百分比
            }))
        });
    </script>
</head>

<body>
    <!-- 容器 -->
    <div id="viewDiv"></div>
</body>

</html>


http://www.kler.cn/a/322089.html

相关文章:

  • 跳表的理解以及使用
  • 饿了么 ui表单 有滚动条的时候 右上角多一节
  • 网络安全的方方面面
  • 第二十二节:学习拦截器使用方法(自学Spring boot 3.x的第六天)
  • zookeeper面试题
  • C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍
  • 缓存的思考与总结
  • mysql默认隔离级别为什么要设置为RC?
  • AI视频技术:引领影视剧拍摄的未来
  • Innodb存储架构
  • 【Redis】分布式锁之 Redission
  • 【Pytorch】大语言模型中的CrossEntropyLoss
  • Node.js官网无法正常访问时安装NodeJS的方法
  • Pencils Protocol 即将登录各大 CEX,依旧看好 $DAPP
  • [教程]如何在iPhone上启用中国移动/联通/电信RCS消息
  • 国产sql工具何时才能出头?
  • 数据定义语言CREATE的应用
  • Pandas-日期类型处理代码详解
  • 如何在IDEA中使用Rainbow Fart
  • SpringBoot3快速入门(持续更新)