Arcgis api for JavaScript 4.X 学习——图层加载(要素图层、栅格图层、切片图层)

ArcGIS API for JavaScript 4.X版本更新后项目启动报错:Module parse failed: Unexpected token(... ... 在使用vue和webpack创建的项目时,ArcGIS API for JavaScript 4.X从较低版本升级为高版本后,构建项目中出现问题: Module parse failed: Unexpected token. You may need an appropriate loader to handle this file type... 阅读详情

1. 一定要掌握对应需求在官网中查询信息的能力,比如说要加载图层那么就需要对应到api reference下的layers下对应查找API Referencehttps://developers.arcgis.com/javascript/latest/api-reference/

2. 加载矢量图层,显示本地地图服务(FeatureLayer)

引入featurelayer库

require(["esri/layers/FeatureLayer"], (FeatureLayer) => { /* code goes here */ });

创建FeatureLayer,下面代码中的url需替换成自己的本地地图服务

var pointLayer= new FeatureLayer({

          url: "http://localhost:6080/arcgis/rest/services/hubei/湖北/MapServer/0"

        });

将图层加载到地图中显示

map.add(pointLayer);

3. 加载栅格图层,显示本地栅格地图服务(MapImageLayer)

引入MapImageLayer模块

require(["esri/layers/MapImageLayer"], (MapImageLayer) => { /* code goes here */ });

创建栅格图层,url自行替换

const RasterLayer = new MapImageLayer({

          url: "  http://localhost:6080/arcgis/rest/services/raster/raster/MapServer"

        });

将栅格图层加载到地图中

map.add(RasterLayer);

4. 完整html代码附上(代码中添加了指北针、home键,搜索控件等可在API Reference->widgets下自行查找需要的控件)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>
      实例一
    </title>

    <link rel="stylesheet" href="http://localhost/4.18/esri/themes/light/main.css" />
    <script src="http://localhost/4.18/dojo/dojo.js"></script>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <script>
      require([
        "esri/Map", 
        "esri/views/MapView", 
        "esri/layers/MapImageLayer",
        "esri/widgets/BasemapGallery",
        "esri/widgets/BasemapToggle",
        "esri/widgets/Home",
        "esri/widgets/Compass",
        "esri/widgets/LayerList",
        "esri/widgets/Legend",
        "esri/widgets/Search",
        "esri/layers/FeatureLayer"], 
          (
            Map,
            MapView,
            MapImageLayer,
            BasemapGallery,
            BasemapToggle,
            Home,
            Compass,
            LayerList,
            Legend,
            Search,
            FeatureLayer
      ) => {
        const map = new Map({
          basemap: "topo-vector"
        });

        const view = new MapView({
          container: "viewDiv",
          map: map,
          center:[114.31667,30.51667],
          zoom: 7 }
        });


        const RasterLayer = new MapImageLayer({
          url: " 	http://localhost:6080/arcgis/rest/services/raster/raster/MapServer",
          title: "湖北栅格数据"
        });

        var pointLayer= new FeatureLayer({
          url: "http://localhost:6080/arcgis/rest/services/hubei/湖北/MapServer/0",
          title: "湖北点数据"       
        });

        var hbLayer= new FeatureLayer({
          url: "http://localhost:6080/arcgis/rest/services/hubei/湖北/MapServer/2",
          title: "湖北面数据" ,
          visible: false   
        });
        var countryLayer= new FeatureLayer({
          url: "http://localhost:6080/arcgis/rest/services/hubei/湖北/MapServer/1",
          title: "湖北线数据" ,
          visible: false      
        });
        const basemapToggle = new BasemapToggle({
          view: view,  
          nextBasemap: "hybrid"  
        });
        //添加
        const basemapGallery = new BasemapGallery({
          view: view
        });
        const homeWidget=new Home({
          view:view
        });
        const compass=new Compass({
          view: view
        });
        const layerList = new LayerList({
          view: view
        });
        const legend = new Legend({
          view: view
        });
        const searchWidget=new Search({
          view: view
        });

        
        map.add(RasterLayer);
        map.add(pointLayer);
        map.add(hbLayer);
        map.add(countryLayer);

        view.ui.add(compass, "top-left");
        view.ui.add(legend, { position: "bottom-right"});
        view.ui.add(homeWidget,"top-left");
        view.ui.add(compass,"top-left");
        view.ui.add(layerList,"top-right");
        view.ui.add(searchWidget,{
          position: "top-right",
          index: 0 //多个控件处于一个位置时,控制该插件在第几个出现
        });
      });
    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>

5. 矢量图层、栅格图层加载实现效果如下:

6. 切片图层加载(TileLayer)

(1)直接加切片服务当作底图(basemap)加载

注: 记得在前面引入tilelayer模块

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>
      切片服务加载
    </title>

    <link rel="stylesheet" href="http://localhost/4.18/esri/themes/light/main.css" />
    <script src="http://localhost/4.18/dojo/dojo.js"></script>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <script>
      require([
				"esri/Map",
				"esri/views/MapView",
				"esri/layers/TileLayer",
				"esri/Basemap"
			], function(Map,
				MapView,
				TileLayer,
				Basemap) {
        //自定义底图为发布的切片服务
				var basemap = new Basemap({
					baseLayers: [
						new TileLayer({
							url: "	http://localhost:6080/arcgis/rest/services/vector/HBvector/MapServer",
							title: "Basemap"
						})
					],
					title: "basemap",
					id: "basemap"
				});

				var map = new Map({
					basemap: basemap
				});

				var view = new MapView({
					container: "viewDiv",
					map: map,
					center: [114.31667,30.51667],//此部分自行选择视图中心经纬度
					zoom: 5
				});
			});

    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>

成果展示如下

 

(2)加载切片图层

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>
      切片图层加载
    </title>

    <link rel="stylesheet" href="http://localhost/4.18/esri/themes/light/main.css" />
    <script src="http://localhost/4.18/dojo/dojo.js"></script>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <script>
      require([
                "esri/Map",
                "esri/views/MapView",
                "esri/layers/TileLayer",
                "esri/layers/MapImageLayer",
                "esri/Basemap",
                "esri/widgets/BasemapToggle"
            ], function(Map,
                MapView,
                MapImageLayer,
                TileLayer,
                Basemap, BasemapToggle) {

                const tileLayer = new TileLayer({
                    url: "  http://localhost:6080/arcgis/rest/services/hbqiepian2/hubei2/MapServer"
                });

                var map = new Map({
                    basemap: "streets",
                    layers:[tileLayer]
                });

                var view = new MapView({
                    container: "viewDiv",
                    map: map,
                    center: [114.31667,30.51667],
                    zoom: 5
                });
                
            });

    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>

效果如下(注:页面第一次加载进来的时候,可能直接看不到切片图层,先右击检查看一下页面是否会报错,无报错的情况下缩放视图等待一会儿即可出现。)

 

【一】ArcGIS API for JavaScript 4.x之地图显示 博客目录1、ArcGIS API for JavaScript 4简介2、API本地部署3、二维地图4、三维地图ArcGIS API for JavaScript 4版本的开发教程会陆续更新,感兴趣的可以关注丫! 1、ArcGIS API for JavaScript 4简介 当前ArcGIS API for JavaScript 4版本已更新到4.11,4版本最大的特点就是通过引入全新设计的 m... 阅读详情

相关推荐

ArcGIS API for JavaScript 4.X HelloWorld(史上最全)

ArcGIS API for JavaScript 4.X 入门与提高

weixin_38866386的博客 795

ArcGis API JS 4.X本地化部署与地图的基础使用

准备工作 首先下载ArcGIS API for JavaScript4.x,这里下载的是4.19。 官方下载地址:https://developers.arcgis.com/downloads/ arcgis_js_v419_api:这个是ArcGIS的Api网站,部署后,我们可以引用这个网站里的JS,然后实现地图的使用。 arcgis_js_v419_sdk:这个是ArcGIS的Api的SD...

kiba518的博客 1460

ArcGIS Maps SDK for JavaScript系列之一:在Vue3中加载ArcGIS地图

详细介绍了在Vue3中加载ArcGIS地图的方法

九仞山的专栏 3014

ArcGIS API For Javascript(针对版本4.x)

来源: https://www.bilibili.com/video/BV1Mf4y1D7Eb ArcGIS APl for JavaScript是什么? 用来构建2D和3D地图应用的一套简单、易用的API,具备强大制图能力和基于数据驱动的地图可视化能力,用来构建WebGIS系统。 特性:三维支持更加完善,BIM支持进一步加强 特性:三维与GP服务结合,解决三维世界更多实际问题。 特性:根据用户需求和发展趋势,不断增加和更新功能 特性:数据驱动的可视化,让数据变得更加直观和美观 升级指南 属性: ○例如:

体验新模板 4040

ArcGIS API for JavaScript 4.10下载

注:当前ArcGIS API for JavaScript二维地图开发最新版本为4.12,该资源为4.10版本。

3D打印切片软件Cura及CuraEngine原理分析

引言         年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件。         自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的。我一向都觉得比起自己写代码来,读别人的代码是一个漫又而痛苦的过程,读者的思想与写者总有偏差,往往又无法验证自己的猜想是否正确,只叹人脑不是电脑,无法把眼前的代码从头到尾执行一遍...

AiDiShengDeXiaoWu的博客 4423

arcgis of js 4.x 笔记(3) 矢量、栅格图层的加载、图层查询、弹窗等

在具体的项目工作中,最后主要的目的是为了加载一些 .shp .tif 文件,然后在地图上展示,之前的笔记写了如何加载底图和控件,现在记录一下如何加载矢量和栅格文件。 1.图层的加载 目前我使用最多的图层有 FeatureLayer (主要是用来一些 shp 矢量 文件数据) MapImageLayer (主要是用来加载一些 tif 栅格文件数据) GraphicsLayer (主要用来加载一些点...

Jos 2583

FPGA编译加速实战:6大可落地的Vivado优化策略

FPGA编译本质上是NP-hard约束满足问题求解,而非传统软件编译;Vivado作为时序驱动的硬件实现工具链,其耗时瓶颈集中在Implementation阶段的布局布线(PnR)与逻辑优化。理解这一原理,才能跳出‘加线程’‘升版本’等表面优化,转向精准时序约束、增量编译、物理锚点控制、IP配置精简等工程级干预。这些技术手段直接作用于Vivado的Tcl执行流与底层求解空间,显著压缩搜索范围、减少无效迭代——尤其适用于Zynq/UltraScale等中大型项目(LUT > 80K、多时钟域、DDR/PCIe

weixin_34226182的博客 414

arcgis api for javascript 的swipe的使用

arcgis api for javascript中多图层卷帘的添加和移除 注:基于arcgis4.18版本下的swipe的多图层添加和移除操作,如果功能不符请检查是否由于版本不同造成的。

gexiaoya1的博客 1262

TC3XX - MCAL知识点(三十五):Tasking编译器下,Tc3xx的MCAL代码如何使用多核,多核中断、多核任务、多核外设之间的MCAL配置与代码例程

文章用于记录在裸机情况下使用多核Tc387芯片,如何高效运行以及正确的代码、工程属性、链接文件配置等问题,相互结合、相互影响的地方,以示后续使用记录。

梦想技术家 964

【从零开始vnpy量化投资】十一. 实盘接入测试与正式实盘

本篇主要讲解如何使用vnpy进行实盘交易,由于上一节我们已经学习了模拟盘运行,如果一切顺利的话,只需要通过穿透测试,就可以正式部署实盘了。

魔落的博客 4233

arcgis js 底图切换_ArcGIS API for JavaScript切换底图

由于小编也是刚接触GIS,也常被网上的各种资源所混淆,关于地图的基本创建就有很多方法。其实无关就是3x和4x版本的不同。3x版本大多是3.33,4x版本为4.16最新版本。以后小编也将采用最新版本。紧接上一篇的创建几何图形,本文主要讲述BasemapToggle和BasemapGallery这两个API来实现地图底图之间的切换。简单描述下两个apiBasemapToggle使用: require(...

weixin_31487533的博客 1493

Autosar EcuM配置-初始化及下电执行函数-基于ETAS软件

Autosar EcuM学习笔记-上电初始化执行函数及下电前执行函数,本文介绍在EcuM中的配置及使用。

赞的博客 851

arcgis gp 选择图层_ArcGIS API for Javascript 4.13调用GP服务的一些问题

撰写日期:2019年12月11日注意:随着时间推移,该博文可能不再适用,请仔细检查自己的版本与博文版本的对应关系,不能保证三五年后,该博文仍然对新版本的ArcGIS API for Javascript 4.13有效!ArcGIS API for Javascript 3.x系列的调用方式和4.x系列的调用方式,有些地方区别还是很大。调用GP服务时的一些3.x版本的代码,在4.x下很多都不能正常运...

weixin_39625872的博客 297

低功耗设计-Power Switch

power gating与power switch cell

m0_61544122的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

arcgis api 4.x for js之图层管理篇

上篇实现了基础地图加载以及二三维模式切换;本篇的内容则是图层管理控制,从两个不同角度来实现,分别是直接绑定arcgis api提供的图层管理widget(LayerList)以及自定义图层管理图标的点击事件来控制图层的隐藏或者显示。不管是LayerList或者自定义图标点击管理图层的实现方式,核心都是根据Layer的属性visible来设置true或者false来控制的。 一、谈谈本篇自己认为比...

weixin_34138377的博客 1652

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

arcgis api for js 关于layers图层的理解

概述:Arcgis for Javasctipt中常见的layer有动态图层(ArcGISDynamicMapServiceLayer )、切片图层(ArcGISTiledMapServiceLayer)、特征图层(FeatureLayer)、图象图层(GraphicsLayer)、标注图层(LabelLayer)、wms图层(WMSLayer)和切片wms图层(WMTSLayer)等...

weixin_30826095的博客 151

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

arcgis js 3.x实现地图上的要素查询属性信息

直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link href="../../../Htmllibs/arcgis_js_api/library/3.27/3.27/dijit/themes/nihilo/nihilo.css" rel="stylesheet" type="text/css" /> <li

heima201907的博客 349

arcgis动态发布服务器文件夹,ArcGIS Server 动态图层发布调用图解

@1 前言1.1 简介动态图层并不是在Server端直接添shape、raster、filegdb、database等资源,它需要依附于一个开启动态图层的地图服务。然后,把数据资源所在位置注册为这个地图服务的动态工作空间。最后,在Web端调用时指定图层关联的数据源以图层符号化等。1.2 适用场景根据需要选择是否允许服务器的客户端动态更改地图服务中的图层外观和行为。要确定哪些图层显示在地图中、图层符...

weixin_29029731的博客 2205

ArcGIS API for JavaScript4.x 之加载2D、3D地图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/81545607 ArcGIS API for JavaScript 之加载2D、3D地图 ...

weixin_34162695的博客 232

ArcGIS Pro发布高程图层到ArcGIS Enterprise/ArcGIS Online的工作流(译)

本文翻译自Esri Blog,对其中部分Pro1.4的操作进行了改写。适配于ArcGIS Pro2.2的操作界面。 什么是高程图层(Elevation Layer)? 通过在3D场景中创建浮雕,高程图层可以帮助进行3D可视化。 高程图层由来自激光雷达,摄影测量,光斑或轮廓源的数据组成。 然后,可以使用从高程数据源创建的栅格高程模型来发布高程图层。 高程图层可用作表面,为场景中的其他图层提供基...

qq_39578416的博客 1330

ArcGIS使用(一)创建ArcGIS应用

ArcGIS官方文档:https://developers.arcgis.com/javascript/ 第一章、认识和使用ArcGIS 1 ArcGIS for js 4.x 使用的是4.15 版本,ArcGIS 每个版本之间有差别,3 和4 的差别有点大 4 地图可以2D或3D显示,修改了绘图逻辑,地图和图层不在处理逻辑,而是由view处理视图专门用于可视化地图或场景中的 数据。地图包含要显示的实际数据或图层,而视图则处理显示的数据。 4.x多了MapV...

duguyuyun12345的博客 1347

Arcgis javascript API 实现克里根插值的可视化

利用Arcgis Javascript api 实现克里根插值的可视化 数据来源是北京某日的pm2.5数据, 来自于几十个站点的值 原理在于建立一个栅格图层,利用克里根算法给每个栅格赋值,利用值不同,加载不同颜色 详见我的github https://github.com/yingxuegu/Arcgis_javascript_kriging Demo: http://www.guxueying....

weixin_33979203的博客 553

ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2(可能会跳转到4.3或者更高最新版本,如果有需要,到优快云可以下载到4.2的离线文档) 【Get Started】 类似于绪论一样的东西,抽取了最需要关注的几个例子。如:加载Map和View,加载layers,使用弹出窗口,视觉化,与使用窗口小部件。(wtf居然没有分析你想搞事情啊we...

weixin_30677475的博客 135
下一篇: ArcGIS API for JavaScript 4.X学习——子图层(sublayers)
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值