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

ArcGIS for js 4.x 加载图层

二维:

1、创建vue项目

npm create vite@latest

2、安装ArcGIS JS API依赖包

npm install @arcgis/core

3、引入ArcGIS API for JavaScript模块

<script setup>
import "@arcgis/core/assets/esri/themes/light/main.css";
import Map from '@arcgis/core/Map.js';
import MapView from '@arcgis/core/views/MapView.js';
import TileLayer from '@arcgis/core/layers/TileLayer.js'
import WebTileLayer from '@arcgis/core/layers/WebTileLayer.js'
import Locate from "@arcgis/core/widgets/Locate.js";
import Compass from "@arcgis/core/widgets/Compass.js";
import ScaleBar from "@/pages/demo9/scaleBar.js"
import { onMounted } from "vue";***
***
</script>

4、创建vue组件

<template><view id="mapView"></view></template>

5、创建一个初始化函数initArcGisMap()用于创建Map实例和MapView实例

	
<script setup>***
***onMounted(()=>{//initMap();initTDTMap();
});// geo地图加载
const initMap = () =>{const map = new Map({basemap:{baseLayers:[new TileLayer({url:"http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity_Mobile/MapServer"})]	}});const mapView = new MapView({// 长春坐标系center:[125.331345,43.8328],// 初始层级zoom:10,container:"mapView",map:map,constraints: {minZoom: 10,// 最小层级maxZoom: 19 // 最大层级}});}// 天地图加载
const initTDTMap = () =>{let webLayer = new WebTileLayer({urlTemplate: "http://{subDomain}.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILECOL={col}&TILEROW={row}&TILEMATRIX={level}&tk=352d4b1313777a8643542046a28d17e5",subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7']});const map = new Map({basemap:{baseLayers:[webLayer]}});const mapView = new MapView({// 默认中心点位center: [125.338, 43.882],map: map,// 初始层级zoom: 10,container: "mapView",constraints: {minZoom: 9,// 最小层级maxZoom: 17// 最大层级},});let compass = new Compass({view: mapView});let locateWidget = new Locate({view: mapView, // Attaches the Locate button to the view});// 移动默认的放大缩小按钮mapView.ui.move("zoom", "bottom-right");// 恢复方向和定位按钮mapView.ui.add([compass, locateWidget], "bottom-left");// 恢复方向和定位按钮位置mapView.ui.padding = {top:0,left:0,right:10,bottom:60}	// 清除底部powered by ESRImapView.ui.remove("attribution");// 比例尺方法调用ScaleBar(mapView);
}</script><style lang="scss" scoped>#mapView{width: 100%;height:100vh;}</style>

比例尺设置(scaleBar.js文件):

import ScaleBar from "@arcgis/core/widgets/ScaleBar";
// 比例尺
const scale = ((mapView) =>{let scaleBar = new ScaleBar({view:mapView});// Add widget to the bottom left corner of the viewmapView.ui.add(scaleBar, {position: "bottom-left"});});export default scale;

 

三维:

创建一个初始化函数initArcGisMap()用于创建Map实例和SceneView实例(三维场景)

注意:三维和二维引入的东西不一样

<template><view id="sceneView"></view>
</template><script setup>
import "@arcgis/core/assets/esri/themes/light/main.css";
import Map from '@arcgis/core/Map.js';
import MapView from '@arcgis/core/views/MapView.js';
import SceneView from '@arcgis/core/views/SceneView.js';
import { onMounted } from "vue";onMounted(()=>{initArcGisMap();})const initArcGisMap = () => {const map = new Map({basemap:"topo-vector"});const sceneView = new SceneView({center: [-118.80500, 34.02700],zoom: 4,container: "sceneView",map: map});sceneView.ui.components = []}</script><style lang="scss" scoped>#sceneView{width: 100%;height: 100vh;}</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 部署LVS-DR群集
  • Pythone 程序打包成 exe
  • Java从入门到放弃
  • 公用nacos,实现只调用本机相应服务,不出现负载均衡到别人机器上
  • eNSP学习——配置前缀列表
  • python爬虫爬取豆瓣TOP250用csv文件
  • 【MySQL】函数
  • HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)
  • 图形和插图软件Canvas X Pro 20 Build 914
  • Android面试题之说说系统的启动流程(总结)
  • Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
  • 常用的三种软件架构
  • 【Vue】购物车案例-构建项目
  • 15.2 测试-网格测试、基准测试与测试覆盖率
  • 基于拓扑漏洞分析的网络安全态势感知模型
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 「译」Node.js Streams 基础
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CentOS7 安装JDK
  • css选择器
  • Golang-长连接-状态推送
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript服务器推送技术之 WebSocket
  • JSDuck 与 AngularJS 融合技巧
  • python学习笔记 - ThreadLocal
  • SegmentFault 2015 Top Rank
  • SQLServer之创建数据库快照
  • Vue全家桶实现一个Web App
  • - 概述 - 《设计模式(极简c++版)》
  • 关于springcloud Gateway中的限流
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 理解在java “”i=i++;”所发生的事情
  • 小程序button引导用户授权
  • 【云吞铺子】性能抖动剖析(二)
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • FaaS 的简单实践
  • 阿里云ACE认证学习知识点梳理
  • 阿里云API、SDK和CLI应用实践方案
  • 阿里云重庆大学大数据训练营落地分享
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###项目技术发展史
  • #HarmonyOS:基础语法
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (02)Hive SQL编译成MapReduce任务的过程
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (一)基于IDEA的JAVA基础12
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (已解决)什么是vue导航守卫
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core 发展历程和版本迭代
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON