ArcGIS API4.X + API文档 本地部署(Tomcat)

news2025/1/27 12:29:49

前言:

        js.arcgis.com有时候不太稳定,导致项目或者自己测试代码需要等待远程资源请求,体验感及其不好,能自己掌控的资源最好就别去拿在线的,当然服务器稳定就另当别论。(所以本地部署有两种含义:本机localhost、自己稳定的服务器)

API部署

1.准备API资源包

        大部分人容易被第一步劝退,我也是其中之一,多亏朋友们的帮助,这里我把包4.14版本放网盘了,不搞些虚头巴脑的付费下载,大家自取。

链接:https://pan.baidu.com/s/1KbHC0mZXqTGS_7gXrk8BRA
提取码:6666
 

        需要别的版本得去官网下载

2.Tomcat部署

        Tomcat环境大家自己解决。跟部署项目或者war包一样,相信大家已经轻车熟路了。将API包放在webapps文件夹下。部署其实不是啥高大上的操作,就是将资源放到直接解析的文件夹下,最后访问的时候也是按照文件层级一级一级找所需要的文件。

        这里关键的核心文件就是这俩:

第一个是功能型脚本文件,关乎后面esri-loader所有的类的引入

第二个是全局样式文件,涉及arcgis所有官方默认样式

所以下载下来API包后(无论是官网还是上面那个包),最主要的是去找4.14(4.X)这个文件夹

aricgis_api_4.14/library/4.14/init.js
aricgis_api_4.14/library/4.14/esri/css/main.css

3.使用本地部署包

        这里采用esm方式引入,使用dojo外的esri-loader按需引入功能函数类。

        在main.js中使用esri-loader底层功能函数loadCss, loadScript全局预加载(预连接)资源。

import { loadCss, loadScript } from "esri-loader";
loadCss(`http://localhost:8080/aricgis_api_4.14/library/4.14/esri/css/main.css`)
loadScript({
  url: `http://localhost:8080/aricgis_api_4.14/library/4.14/init.js`
});

        如果不进行这一步,直接按照官网例子,最终是走js.arcgis.com的资源,具体可以看esri-loader这一块的源码。

        上面main.js预加载后,所有的资源请求都会走那个地址,上代码测试:

测试前需要启动本地Tomcat

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

<script>
import { loadModules } from "esri-loader";
export default {
  name: "popup_geojson",
  mounted() {
    loadModules([
      "esri/views/MapView",
      "esri/Map"
    ]).then(
      ([
        MapView,
        MapImageLayer,
        GraphicsLayer,
        GeoJSONLayer,
        Sketch,
        Basemap,
        Map
      ]) => {
        const map = new Map({
          basemap: "satellite"
        });
        const view = new MapView({
          container: "viewDiv",
          map: map,
          zoom: 6,
          center: [114, 29]
        });
      }
    );
  }
};
</script>

<style>
#viewDiv {
  width: 100%;
  height: 100%;
}
</style>

         可以看到所有的请求全走本地(如果出现上图,表示成功),如果不本地部署会是下面这种情况

文档部署

        API部署成功了的话,文档部署就是小菜一碟,步骤和部署API很相似,直接把解压后的Javascript文件夹丢到webapps下即可(端口不能被占用、记得重启服务器)。
        直接访问:http://localhost:8080/javascript/4.22/,本地嘎嘎快。

 案例也一样可以打开


 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ModStartCMS v5.3.0 任务调度记录,模块市场优化

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰…

在vue项目中下载swiper出现:Do not use ‘new’ for side effects报错问题

我报错的情况是&#xff1a;我在单文件组件vue文件中使用new Swiper&#xff0c;报了两个错误&#xff0c;图示&#xff1a; 第一个错误是&#xff1a;‘Swiper’ is not defined 第二个错误是&#xff1a;Do not use ‘new’ for side effects 解决办法&#xff1a; &#x…

【软件测试】7年资深带你详探什么是测试开发?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 在一些大公司里&…

数据结构初阶--二叉树介绍(基本性质+堆实现顺序结构)

树的基本概念和结构 树的相关概念 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b; 如上图&#xff1a;A的为2叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b; 如上图&#xff1a;D、F、G、H为叶节点非终端节点或分支节点&#xff1…

Unity笔记(13):Android Movement of Characters[2D]

目录 1、搭建一个测试场景 2、建立画布设置移动按钮 3、编写脚本绑定按钮 AxisTouchButton &#xff1a;ButtonHandler &#xff1a; 4、编写脚本绑定角色 原来的按键移动 修改为触摸按钮 5、导出为APK文件&#xff0c;手机下载进行测试 1、搭建一个测试场景 2、建立画…

【正点原子FPGA连载】第二十四章 双路高速DA实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十四章 双路…

【EXCEL拦路虎】解决一些常遇到的excel问题

【问题一】 解决.CSV文件转为excel文件乱码问题 方法二&#xff1a;参考 解决Excel打开CSV文件中文乱码问题 【问题二】 解决内容过长后面的空白表格被前一列的字符填满&#xff0c;&#xff08;内容过长就会覆盖前后的单元格&#xff09;&#xff0c;如下图&#xff1a; 解决…

vue 新增枚举类型栏位

dict-tag 标签新增枚举类型栏位 新增栏位数据字典 新增字典命名规范为coin_表字段名 新增字典枚举数据&#xff0c;key value Value标签格式为 值-key 如 1-成交 分别对应的新增为两张表&#xff1a; Sys_dict_type --字典类型 Sys_dict_data --字典数据 前端栏位 &l…

数据库学习

数据是描述事务的符号记录&#xff0c;包括数字、文字、图像、音频等&#xff0c;以“记录”的形式按统一的格式进行存储&#xff1b;表将不同的记录组织在一起&#xff0c;用来存储具体的数据&#xff1b;数据库是表的集合&#xff0c;是存储数据的仓库&#xff0c;它以一定的…

基于粒子群算法的电力系统无功优化研究(IEEE14节点)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 概述 2 无功优化数学模型 3 …

剑指 Offer 15. 二进制中1的个数

一、题目描述 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为 汉明重量).&#xff09;。 二、示例 示例 1&#xff1a; 输入&#xff1a;n 11 (控制…

基于SSM的邮箱客户端的设计与实现

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1 选题及意义 1 1.2 邮箱发展现状 1 1.2.1开源邮件系统 2 1.2.2国外商业邮件系统 2 1.2.3国内商业邮件系统 2 1.3研究内容 4 第2章 相关技术的理论概述 5 2.1 JSPServlet技术优势 5 2.2Mysql数据库的介绍 6 2.3 tomcat服务器介绍 6 2…

mmdetection3d nuScenes (持续更新)

Mmdetection3d集成了大量3D深度学习算法&#xff0c;其中很大一部分可以在智能驾驶nuScenes数据集上运行。在算法应用nuScenes数据之前&#xff0c;mmdetection3d提供了相应的预处理程序。关于nuScenes的详细介绍请参考本博客之前的文章nuScenes数据集详细介绍_Coding的叶子的博…

react+node.js+mysql 前后端分离项目 宝塔面板 部署到腾讯云服务器

目录一. 前端项目部署1.登录宝塔面板并安装环境依赖2. 打包上传&#xff0c;部署前端项目3.端口放行二. 后端项目部署1.上传后端项目2. PM2中添加项目三. mysql1.宝塔面板 添加数据库2.导入sql文件一. 前端项目部署 1.登录宝塔面板并安装环境依赖 命令行第一行输入刚才复制的内…

你是否还记得有一款游戏叫做“魔塔”?

目录 前言 正文 游戏介绍&#xff1a; 游戏开发制作流程 1.收集素材 2.创建攻击函数 2.1 定义两个对象&#xff08;主角和怪物&#xff09; 2.2 函数输出为【0】表示打不过&#xff0c;胜利输出受损生命值&#xff0c;设置 cancel 可以撤销本次战斗即回到之前状态 2.…

pinia安装使用

pinia中文文档 目录 一.pinia简介 二. pinia安装 三.pinia使用 1.main.js中创建pinia实例 2.创建store状态库 定义state state的读写 state响应式解构 state的修改 Getters的使用 Pinia中Store的互相调用 一.pinia简介 Pinia是vue生态里Vuex的替代者&#xff0c;一个…

MySQL笔记【面试】

MySQL笔记【面试】前言推荐MySQL笔记最后前言 以下内容源自A minor 仅供学习交流使用 推荐 MySQL MySQL笔记 【MySQL】基础使用&#xff08;一&#xff09;&#xff1a;支持的数据类型 【MySQL】基础使用&#xff08;二&#xff09;&#xff1a;常用 SQL 语句大全 【MyS…

推荐系统-概述:基本架构

提纲 过去八九年在广告、生活服务、电商等领域从事大数据及推荐系统相关工作&#xff0c;近来打算对过去的工作做一个系统性的梳理。一方面帮自己查缺补漏、进行更深入的学习&#xff1b;另一方面也希望能通过博客结交同好&#xff0c;增进交流。 这一博客系列以介绍推荐系统为…

Arduino开发实例-旋转编码器RGB-LED调光

旋转编码器RGB-LED调光 在本文中,将使用 Arduino 和旋转编码器进行 RGB LED 颜色控制。 我们将旋转旋转编码器来分配值。 红色、绿色和蓝色将合并以显示基于该值的全新颜色。 在这里,使用具有红色、绿色和蓝色的单 RGB 颜色 LED,也可以使用长 RGB LED 灯条。 此外,还可以使…

「Redis」02 Redis中的数据类型(含Redis6.0:Bitmaps、HyperLogLog、Geospatial)

笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程 Redis——Redis中的数据类型 0. 键 (key) 操作 keys *&#xff1a;查看当前库所有 keyexists key&#xff1a;判断某个 key 是否存在type key&#xff1a;查看你的 key 是什么类型del key &#xff1a;删除指定的 key 数…