在 vue中使用 Arcgis for javascript

安装依赖

npm i esri-loader -S

页面中使用

<body>
  <div id="viewDiv"></div>
</body>
#viewDiv {
  padding: 0;
  margin: 0;
  height: 100%;
  width: 100%;
}
import {loadModules} from "esri-loader";    

创建2D视图 

MapView通过将对象传递给构造函数来创建一个新的并设置其属性,包括center和zoom,这些属性用于定义视图的初始范围

 MapView用于查看2D地图,SceneView用于查看3D地图

mounted() {
     let options = {
        url: "https://js.arcgis.com/4.17/",
        css: "https://js.arcgis.com/4.17/esri/themes/light/main.css"
     };
     loadModules([
        "esri/Map",
        "esri/views/MapView",
     ],options).then(([Map,MapView])=>{
        let map = new Map({
           basemap: "topo-vector"
        })
        let view = new MapView({
           container: "viewDiv",
           map: map,
           zoom: 7,
           center: [108.17377929686404, 35.69178936670419]
         })
     })
}

最终代码:复制后,即可使用

<template>
  <div id="viewDiv"></div>
</template>

<script>
  import {loadModules} from "esri-loader";
    export default {
     name: "demo",
      mounted() {
        let options = {
          url: "https://js.arcgis.com/4.17/",
          css: "https://js.arcgis.com/4.17/esri/themes/light/main.css"
        };
        loadModules([
          "esri/Map",
          "esri/views/MapView",
        ],options).then(([Map,MapView])=>{
          let map = new Map({
            basemap: "topo-vector"
          })
          let view = new MapView({
            container: "viewDiv",
            map: map,
            zoom: 7,
            center: [108.17377929686404, 35.69178936670419]
          })
        })
      }
    }
</script>

<style scoped>
  #viewDiv {
    padding: 0;
    margin: 0;
    width: 100%;
    height: 95vh;
  }
</style>

 最终结果图:

<think>好的,我现在需要帮助用户在Vue项目中集成ArcGIS API for JavaScript来显示要素图层,并提供一个完整的示例代码。首先,我需要回忆相关的步骤和引用内容。 根据用户提供的引用,特别是引用[3]提到,从ArcGIS API v4.18开始,可以使用@arcgis/core模块通过ES模块构建,而无需esri-loader。因此,我应该优先推荐这种方法。需要安装@arcgis/core包,并在Vue组件中引入必要的模块,如Map、MapView、FeatureLayer等。同时,需要引入CSS样式以确保组件正确渲染。 接下来,我需要确保代码结构符合Vue的单文件组件结构,包括模板、脚本和样式部分。在模板中,应该有一个div元素作为地图的容器,并设置ref以便在组件中访问。在脚本部分,需要导入所需的ArcGIS模块,并在mounted生命周期钩子中初始化地图和视图,添加要素图层。此外,需要注意在组件销毁时销毁MapView实例以避免内存泄漏。 用户可能还需要配置API密钥,如引用[3]中提到的使用esriConfig.apiKey。因此,在示例代码中应该包含如何设置API密钥的部分,并提示用户替换为自己的密钥。 另外,引用[4]指出官网知识的重要性,但可能不需要覆盖全部内容。因此,示例代码应保持简洁,专注于要素图层的显示,同时提供必要的注释说明关键步骤。 最后,需要验证代码的LaTeX格式是否符合要求,行内公式用$...$,独立公式用$$...$$,但根据用户的问题,可能此处不需要数学公式,但需确保其他格式正确。同时,生成相关问题,帮助用户进一步学习。</think>以下是在Vue 3项目中集成ArcGIS API for JavaScript显示要素图层的完整实现步骤和示例代码: ### 一、环境准备 1. 创建Vue项目: ```bash npm create vue@latest ``` 2. 安装ArcGIS核心包: ```bash npm install @arcgis/core --save ``` ### 二、完整示例代码 ```vue <template> <div class="map-container" ref="mapContainer"></div> </template> <script setup> import { ref, onMounted, onBeforeUnmount } from &#39;vue&#39;; import Map from &#39;@arcgis/core/Map&#39;; import MapView from &#39;@arcgis/core/views/MapView&#39;; import FeatureLayer from &#39;@arcgis/core/layers/FeatureLayer&#39;; import esriConfig from &#39;@arcgis/core/config&#39;; // 配置API密钥(需申请自己的密钥) esriConfig.apiKey = "YOUR_API_KEY"; const mapContainer = ref(null); let view = null; onMounted(() => { // 创建要素图层 const featureLayer = new FeatureLayer({ url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Landscape_Trees/FeatureServer/0", outFields: ["*"], popupTemplate: { title: "树信息", content: [ { type: "fields", fieldInfos: [ { fieldName: "COMMON_NAM", label: "名称" }, { fieldName: "SCIENTIFIC", label: "学名" } ] } ] } }); // 初始化地图 const map = new Map({ basemap: "arcgis-topographic", layers: [featureLayer] }); // 创建地图视图 view = new MapView({ container: mapContainer.value, map: map, center: [-118.805, 34.027], // 经纬度坐标 zoom: 13 }); }); onBeforeUnmount(() => { if (view) { view.destroy(); } }); </script> <style> @import "https://js.arcgis.com/4.25/@arcgis/core/assets/esri/themes/light/main.css"; .map-container { width: 100%; height: 600px; margin: 0; padding: 0; } </style> ``` ### 三、关键配置说明 1. **API密钥**:需到[ArcGIS开发者平台](https://developers.arcgis.com/)申请免费密钥[^3] 2. **要素图层URL**:示例使用公开的树木数据服务,可替换为自定义服务地址 3. **弹窗配置**:通过`popupTemplate`定义要素点击弹窗内容[^1] 4. **视图销毁**:必须在组件卸载时销毁视图避免内存泄漏 ### 四、运行验证 1. 启动开发服务器: ```bash npm run dev ``` 2. 访问`http://localhost:5173`应看到包含要素图层的地图
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值