最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Vite中使用ArcGIS API for JavaScript 4.18

    正文概述 掘金(jiaoxn)   2021-02-12   727

    这篇文章将会介绍如何使用在使用Vite初始化的vue3项目中使用ArcGIS API for JavaScript 4.18来进行GIS项目开发。

    1. ArcGIS API for JavaScript 4.18 简介

    ArcGIS API for JavaScript4.18版本相比于4.17版本的变化主要的更新内容如下:

    1. 支持ES ModuleBeta版本)方式调用,同时也支持AMD方式的调用,两种方式调用的功能都是一样的;
    2. 支持对点聚类的查询,通过对点聚类的查询,可以实现查询点聚类的统计信息、展示点聚类对应的最小包络空间范围、获取某个点属于哪个聚类以及查看
    3. 支持2D视图下的图层效果,操作对象可以是整个图层或者过滤条件后的要素,该特性可将类似css过滤器的函数应用与图层,从而增强地图的展示效果
    4. 提供高程剖切小微件(Beta版本),该微件可以在2D3D视图中使用,可基于绘制的线或者视图中存在的线,对比地形和3D建筑物的高度
    5. 引入Order-independent transparency技术,能够根据相机的位置,可以选择性地看到透明表面后的其他透明要素
    6. 上下文感知导航,在大倾斜的地下场景中,使用交互式缩放、平移或者旋转时,能够有大幅度的性能提升
    7. 支持3D Web Editing,早些的版本中提供过了对于3D图层的编辑能力,这个版本增强了这个功能,包括:在scene layers中支持对属性的编辑、绘制3D要素时支持自捕捉功能等
    8. 支持火星和月球相关的坐标系,在SceneView中可以加载火星或月球相关的影像和地形,也可加载相关坐标系的要素图层
    9. 矢量符号生成器,可使用CIMSymbolsgraphicfeature进行符号化
    10. 停止对IE11Edge Legacy的支持

    4.18版本信息的优化内容请移步官网介绍,点这里哦

    2. Vite简介

    Vite是由尤雨溪开发的Web开发工具,是一个基于浏览器原生的ES import的开发服务器,它能够利用浏览器区解析imports,在服务器端负责按需编译并返回,整个过程跳过了打包这个概念;并且在热更新时,能够按需编译,不会随着模块增多而变慢。在生产环境中,则可以使用rollup对同一份代码打包。

    Vite具有快速的冷启动、即时的模块热更新以及真正的按需编译的特点。详细的Vite介绍可以查看阿里巴巴淘系技术在知乎上的回答。

    3. Vite构建的项目中使用4.18的版本

    3.1 Vite创建Vue3项目

    这里假设你已经在电脑上安装了node并且node版本>= 12.0.0、配置了npm可全局访问。

    1. npm6.x版本:
    $ npm init @vitejs/app <project_name> --template vue
    
    1. npm7.x版本:
    $ npm init @vitejs/app <project_name> -- --template vue
    

    创建完成后,使用如下命令运行当前项目

    $ cd <project_name>
    $ npm install
    $ npm run dev
    

    3.2 安装ArcGIS API插件

    $ npm install @arcgis/core
    

    3.3 修改package.json

    {
      "name": "arcgis_api_for_js_418_with_vite",
      "version": "0.0.0",
      "scripts": {
        "dev": "vite",
        "build": "npm run copy && vite build",
        "serve": "vite preview",
        "copy": "ncp ./node_modules/@arcgis/core/assets ./public/assets",
        "postinstall": "npm run copy"
      },
      "dependencies": {
        "vue": "^3.0.5",
        "@arcgis/core": "^4.18.1"
      },
      "devDependencies": {
        "ncp": "^2.0.0",
        "@vitejs/plugin-vue": "^1.1.4",
        "@vue/compiler-sfc": "^3.0.5",
        "vite": "^2.0.0-beta.65"
      }
    }
    

    主要修改内容有:

    • 增加ncp依赖,主要用于将@/arcgis/core中的assets文件夹拷贝至项目的public文件夹
    • 增加copy命令,调用ncp@/arcgis/core中的assets文件夹拷贝至项目的public文件夹
    • 修改build命令,在构建项目之前,执行copy命令

    3.4 修改main.js

    main.js文件中引用@arcgis/core中的样式文件,文件内容如下:

    import { createApp } from 'vue'
    import App from './App.vue'
    
    import '@arcgis/core/assets/esri/themes/dark/main.css'
    
    createApp(App).mount('#app')
    

    3.5 修改App.vue

    修改App.vue文件加载地图,文件内容如下:

    <template>
      <div class="map-div"></div>
    </template>
    
    <script>
    import WebMap from '@arcgis/core/WebMap'
    import MapView from '@arcgis/core/views/MapView'
    
    export default {
      name: 'App',
      async mounted() {
        const webMap = new WebMap({
          portalItem: {
            id: "aa1d3f80270146208328cf66d022e09c",
          }
        })
    
        const mapView = new MapView({
          container: this.$el,
          map: webMap
        })
    
        await mapView.when(() => {
          console.log("地图加载成功")
        })
      }
    }
    </script>
    
    <style>
    html,
    body,
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      padding: 0;
      margin: 0;
      width: 100%;
      height: 100%;
    }
    
    .map-div {
      padding: 0;
      margin: 0;
      height: 100%;
    }
    
    </style>
    

    可以看到,引用WebMapMapView时使用了ES6 Module相关的语法,不再使用之前的load_modules的方式。

    3.6 运行

    在执行npm run dev命令之前,需要调用npm run postinstall命令拷贝assets文件夹,否则在Web页面上不能显示放大、缩小等微件,并且在浏览器中提示相关错误。

    $ npm run postinstall
    $ npm run dev
    

    访问浏览器查看地图是否加载成功。

    3.7 打包部署

    修改vite.config.js配置打包的目标路径以及基本公共路径等配置信息

    import vue from '@vitejs/plugin-vue'
    
    /**
     * https://vitejs.dev/config/
     * @type {import('vite').UserConfig}
     */
    export default {
      plugins: [vue()],
      base: './',
      build: {
        outDir: 'example'
      }
    }
    

    执行npm run build命令,并将生成的打包文件夹拷贝到tomcat中的webapp文件夹。在浏览器通过http(s)://<服务器IP>:<port>/<outDir>的方式访问部署的网页。


    起源地下载网 » Vite中使用ArcGIS API for JavaScript 4.18

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元