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 ESRI
	mapView.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 view
	mapView.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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/690445.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本地运行feishu-chatgpt项目结合内网穿透实现无公网IP远程访问

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 本文主要介绍如何在飞书中创建chatGPT机器人并且结合内网穿透工具…

Git+Gitlab 远程库测试学习

Git远程仓库 1、Git远程仓库 何搭建Git远程仓库呢&#xff1f;我们可以借助互联网上提供的一些代码托管服务来实现 Gitee 码云是国内的一个代码托管平台&#xff0c;由于服务器在国内&#xff0c;所以相比于GitHub&#xff0c;码云速度会更快 码云 Gitee - 基于 Git 的代码托…

3D39无人机摇杆电位器食用指南

这个摇杆精度会非常的不错&#xff0c;虚位只在后面有一点&#xff0c;当然价格也比较贵。最便宜某宝上也得 &#xffe5;15 一个。 使用这个摇杆和使用2块钱一个的 PS 写的代码都一样&#xff0c;只是注意下接线上的一些问题就行。 需要注意两个ADC引脚最好不要挨着&#xf…

RK3568笔记三十:PP-ORCv3自训练部署

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 PP-OCR 是百度公布并开源的OCR领域算法&#xff0c;一个轻量级的OCR系统&#xff0c;在实现前沿算法的基础上&#xff0c;考虑精度与速度的平衡&#xff0c; 进行模型瘦身和深度优化&#xff0c;使其尽可能满足产业…

九家大模型“决战”高考!AI作文哪家强?阅卷名师点评来了!

2024.06.07 本文字数&#xff1a;12474&#xff0c;阅读时长大约21分钟 导读&#xff1a;语文老师对AI作文的评价是&#xff0c;“中规中矩&#xff0c;没有‘血肉’&#xff0c;缺一点情感和灵气。” 作者 | 第一财经 刘晓洁 冯小芯 马一凡 吕倩 又到一年高考季&#xff0c;…

单元测试覆盖率

什么是单元测试覆盖率 关于其定义&#xff0c;先来看一下维基百科上的一段描述&#xff1a; 代码覆盖&#xff08;Code coverage&#xff09;是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。 简单来理解&#xff…

问题:11单位内部人员对行政机关作出的行政处分不服,可申请行政复议. #其他#微信

问题&#xff1a;11单位内部人员对行政机关作出的行政处分不服,可申请行政复议. 参考答案如图所示

阅读笔记——《AFLNET: A Greybox Fuzzer for Network Protocols》

【参考文献】Pham V T, Bhme M, Roychoudhury A. Aflnet: a greybox fuzzer for network protocols[C]//2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST). IEEE, 2020: 460-465.【注】本文仅为作者个人学习笔记&#xff0c;…

JavaSE——抽象类和接口

目录 一 .抽象类 1.抽象类概念 2.抽象类语法 3.抽象类特性 4.抽象类的作用 二. 接口 1.接口的概念 2.语法规则 3.接口的使用 4.接口特性 5.实现多个接口 6.接口间的继承 三.抽象类和接口的区别 一 .抽象类 1.抽象类概念 在面向对象的概念中&#xff0c;所有的对…

【Unity】Kafka、Mqtt、Wesocket通信

1 前言 最近研究了下kafka、mqtt、webocket插件在Unity网络通信中的应用&#xff0c;做下小总结吧。&#xff08;不想写笔记&#xff0c;但不写又会忘&#xff0c;痛苦&#xff09; 2 Kafka 先说结果&#xff1a;Kafka实现失败。 我会使用的方法是在VS里安装了Confluent.Kafka…

python -- series和 DataFrame增删改数据

学习目标 知道df添加新列的操作 知道insert函数插入列数据 知道drop函数删除df的行或列数据 知道drop_duplicates函数对df或series进行数据去重 知道unique函数对series进行数据去重 知道apply函数的使用方法 1 DataFrame添加列 注意:本文用到的数据集在文章顶部 1.1 直…

Java采取擦除式泛型到底兼容了什么场景?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;Java擦除式泛型是一个妥协,…

数据+AI 打造企业的“金山银山”

今日之世界&#xff0c;数据是生产资料&#xff0c;而人工智能&#xff08;AI&#xff09;是生产工具&#xff0c;它们的结合&#xff0c;带来的是业务的增长、新质生产力的提升&#xff0c;就是金山银山。 创新是源动力 凡是到过浙江省安吉县余村的人&#xff0c;应该都会被它…

2024年AI大模型训练数据白皮书作用

2024年AI大模型训练数据白皮书 在人工智能迅猛发展的今天&#xff0c;AI大模型的训练数据质量和管理成为影响其性能和应用效果的关键因素。《2024年AI大模型训练数据白皮书》为业内人士提供了一份详尽的指南&#xff0c;揭示了当前AI大模型训练数据的最新趋势、最佳实践以及未…

Steam游戏如何选择适合的服务器

在Steam平台上&#xff0c;玩家可以享受到来自世界各地开发者的游戏作品。然而&#xff0c;要获得最佳的游戏体验&#xff0c;选择合适的服务器至关重要。本文将从网络延迟、服务器位置、游戏类型和个人偏好等多个方面&#xff0c;为玩家提供选择Steam游戏服务器的实用指南。 如…

【核心动画-转场动画-CATransition Objective-C语言】

一、转场动画,CATransition, 1.接下来,我们来说这个转场动画啊,效果呢,会做这么一个小例子, 感觉有一个3D的一个样式一样, 转场动画呢,就是说,你在同一个View,比如说,imageView,去切换图片的时候,你可以去用这个,转场动画, 实际上,包括,控制器之间的切换,也…

【Flask开发实战】首页模板

一、前言 前面我们已经完成登录页面的设定&#xff0c;登录后临时调转到“hello flask”的界面。现在我们根据实际首页的设计需要&#xff0c;来完成首页相关内容的开发。一般系统首页会放一些分析数据&#xff0c;多以图表的方式展示&#xff0c;方便使用者了解信息。以防火墙…

【Vscode配置java环境并配置stringboot】

1.VSCODE配置JAVA环境 参考这篇文章配置JAVA环境&#xff1a;连接 java版本&#xff0c;我是win11系统,我下载的JAVA安装版本是下面&#xff0c;是最新版的&#xff1a; 配置环境&#xff1a;步骤很简单&#xff0c;就是向系统环境变量中添加路径&#xff0c;参考上面文章中的…

类和对象(二)(C++)

初始化列表 class Date{public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day;}; 虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成员变量的初始化…

PCL 生成空间椭圆点云

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 设椭圆在 X O Y XOY XOY平面上,参数方程为: