当前位置: 首页 > 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>

http://www.lryc.cn/news/368721.html

相关文章:

  • Three.js和Babylon.js,webGL中的对比效果分析!
  • flask实现抽奖程序(一)
  • Python中数据库连接的管理
  • 【JAVA技术】mybatis 数据库敏感字段加解密方案
  • Collections工具类及其案例
  • Duck Bro的第512天创作纪念日
  • 【机器学习】GPT-4中的机器学习如何塑造人类与AI的新对话
  • 晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册
  • 模板显式、隐式实例化和(偏)特化、具体化的详细分析
  • 软件设计师笔记-计算机系统基础知识
  • flink 作业动态维护更新,不重启flink,不提交作业
  • 为何数据仓库需要“分层次”?
  • 小熊家务帮day15-day18 预约下单模块(预约下单,熔断降级,支付功能,退款功能)
  • [word] word悬挂缩进怎么设置? #经验分享#职场发展#经验分享
  • 6-Maven的使用
  • WPF真入门教程32--WPF数字大屏项目实干
  • 数据可视化Python实现超详解【数据分析】
  • Maxkb玩转大语言模型
  • React Hooks 封装可粘贴图片的输入框组件(wangeditor)
  • Wireshark TS | 应用传输丢包问题
  • 架构设计-web项目中跨域问题涉及到的后端和前端配置
  • ==Redis淘汰策略(内存满了触发)==
  • 2024年高考作文考人工智能,人工智能写作文能否得高分
  • Vue3学习记录第三天
  • 数仓建模中的一些问题
  • spring整合kafka
  • 【web前端】CSS样式
  • 【ARM Cache 与 MMU 系列文章 7.7 – ARMv8/v9 MMU Table 表分配原理及其代码实现 1】
  • AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略
  • 6.7-6.10作业