ArcGIS Server发布WMS影像地图服务并用Leaflet加载(附代码)

cover

前言

滴滴滴!!!🤓🤓🤓在本系列中,博主将详细撰写WebGIS中各大主流平台发布地图服务(WMS,WTMS等)的详细图文教程。今天,我们首先演示如何使用 ArcMap 和 ArcGIS Server发布一个台湾地图影像的 WTMS 切片服务,并在Leaflet中调用显示🎉🎉🌟;

一、介绍

本文主要内容如下:

  • 如何使用ArcGIS Desktop和ArcGIS Server发布一个台湾地区的地图影像WMTS切片服务。
  • 在ArcMap中创建地图文档,添加地图影像数据,以及发布WMTS地图服务的全过程。
  • 发布地图服务时使用缓存切片和动态绘制的区别,以及如何根据数据量、更新频率、应用场景和服务器资源情况选择。
  • 如何在Leaflet中通过内网IP调用已发布的WMTS地图服务,并显示在地图上。

二、内容

1. 准备工作

首先,我们需要准备好以下资源:

  • ArcGIS Desktop 10.4 (包含 ArcMap)
  • ArcGIS Server 10.4
  • 湾湾的地图影像数据(TIF格式)
  • Leaflet 库

2. 创建地图文档

开启 ArcMap,创建一个新的地图文档。在地图文档中点击添加数据添加地图影像,并打开属性查看其地图投影和地理参考等参数;这里我们使用的是TW地图影像数据,如下图所示:
添加数据影像
然后我们点击保存,将地图文档重命名为taiwan.mxd.
保存mxd

3. 创建WMS地图服务

在 ArcMap 中,右键单击地图文档,选择“分享为” > “服务”,如下图所示:

发布服务
现在我们选择arcgis server服务器连接或者配置arcgis server服务器连接,并点击下一页:

在“分享为服务”窗口中,选择发布服务器,然后单击“继续”。接下来,选择“WTMS”作为服务类型,并勾选“使用 ArcGIS Server 缓存”选项,如下图所示:

链接
文件

4.配置WMS地图服务

在“服务编辑器”窗口中,填写服务名称、数据源、描述等信息。在“缓存”选项卡中,配置缓存参数,如缓存格式、瓦片大小、缩放级别等。完成配置后,单击“分享”按钮发布服务。
常规
这里我们根据我们要发布的服务需求进行发布,这里我选择发布WMS服务;
功能
然后配置缓存,这里可以设定我们地图瓦片切分的层级区间,这里绘制地图服务的选择有二,我们判断依据如下:

①数据量大小
  • 如果数据量很大,动态绘制会消耗大量服务器资源,此时使用预先缓存的切片能提高响应速度和并发能力。
  • 如果数据量较小,动态绘制的开销也不大,可以考虑不缓存切片。
②数据更新频率
  • 如果底层数据经常更新,使用缓存切片就需要经常重新生成缓存,维护成本高。这种情况下可以考虑动态绘制。
  • 如果数据较为静态,使用缓存切片可以提高性能,并减轻服务器负载。
③客户端应用场景
  • 如果客户端应用是web应用,需要快速加载切片,建议使用缓存切片。
  • 如果客户端应用是桌面GIS等,加载速度的要求低一些,可以使用动态绘制。
④服务器资源情况
  • 如果服务器资源充足,可以考虑动态绘制获得较好的数据实时性。
  • 如果服务器资源紧张,建议使用缓存切片减轻负载。

综上所述,我们当前业务地图不常更新,且是Web端应用,因此我们选择使用缓存中的切片;
cache

如果要进行WebGIS项目开发,这里推荐使用 根据数据动态绘制 ,不然在项目中加载不出来;

进程部分默认选择即可;
process
项目描述根据自己的应用项目进行填写,我这里是基于ArcGIS Server发布 WMS 服务,如下:
project description

5.发布地图服务

发布服务前点击分析,看看地图服务有没有什么错误,有的话就需要改正:
analysis
选择不同的问题,鼠标右击,进行修改:
reveal
感觉没有问题后再次点击分析,可以过滤掉解决后的问题,然后我们就可以预览发布了:
reanalysis
preview
在预览中,我们可以看到地图服务已经成功发布,此时我们便可以点击发布按钮,进行发布了!!
publish
发布完毕后,我们可以在服务列表中看到它,右击该服务,然后选择查看其服务属性:
service property
选择地图,此时我们复制这个地图URL,并用浏览器打开,可以看到,内部是存在切片数据的:
REST URL
WMTS
由此,我们便基于ArcGIS Server 完成了WMS地图服务发布;

4. 在 Leaflet 中 使用 ArcGIS Server 发布的 WMS 服务

发布成功后,我们可以在 Leaflet 中使用该 WMS 服务。有三种使用该服务的情况:

  • 发布服务器和开发服务器在同一设备:即ArcGIS Server服务器和Leaflet WebGIS应用服务器在同一台设备上,直接使用本地IP即可;
  • 开发服务器和发布服务器在同一内网下:需要使用ArcGIS Server服务器在内网中的IP;
  • 发布服务器是远程服务器:如果ArcGIS Server服务器是远程服务器,WebGIS开发服务器想要访问到它就需要ArcGIS服务器具有公网IP或者做内网穿透;
内网IP查看

当前博主是状态2,因此我需要查看ArcGIS Server发布服务器的内网IP,在ArcGIS Server发布服务器的命令行中输入:

ipconfig

回车,可以得到IP信息,这里我们便可以看到内网中的地址,然后我们就可以在开发服务器上调用我们发布的WMS服务:
内网IP

每台设备内网IP的内容都不一样,需要按照以上步骤单独查看;

基于Leaflet 对 ArcGIS WMS服务调用

在 HTML 文件中,引入 Leaflet 库和 CSS 文件,然后使用 L.tileLayer.wtms() 方法添加 WMS 服务层。完整代码如下:

<!DOCTYPE html>
<html>
<head><title>Leaflet ArcGIS Example</title><link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /><script src="https://unpkg.com/leaflet/dist/leaflet.js"></script><script src="https://unpkg.com/esri-leaflet/dist/esri-leaflet.js"></script><style>#map {width: 100%;height: 100vh;}</style>
</head>
<body><div id="map"></div><script>var map = L.map('map').setView([23.5, 121], 12);L.esri.basemapLayer('Streets').addTo(map);L.esri.dynamicMapLayer({url: 'https://192.168.123.118:6443/arcgis/rest/services/taiwan/MapServer', // 使用发布服务器的局域网IPopacity: 0.7}).addTo(map);</script>
</body>
</html>

效果如下:
Map
效果

三、总结

本文介绍了如何使用 ArcGIS Server 发布一个台湾地图影像的 WMS 影像服务,并在 Leaflet 中调用该服务图层。

文章参考

  • Leaflet官方文档

项目地址

  • Github地址
  • 拓展阅读

如果觉得我的文章对您有帮助,三连+关注便是对我创作的最大鼓励!或者一个star🌟也可以😂.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 学习笔记(12)

十二、 系统服务 1 、系统服务分类&#xff0c;根据其使用的方法来分&#xff0c;可以被分为三类 a、由 init 控制的服务&#xff1a;基本都是系统级别的服务&#xff0c;运行级别这一章讲的就是这一类的服务 b、由 System V 启动脚本启动的服务&#xff1a;和我们打交道最多…

如何恢复已删除的华为手机图片?5 种方式分享

不幸的现实是&#xff0c;华为的珍贵时刻有时会因为意外删除、软件故障或其他不可预见的情况而在眨眼之间消失。在这种情况下&#xff0c;寻求恢复已删除的图片成为个人迫切关心的问题。 本文旨在为用户提供如何从华为恢复已删除图片的实用解决方案。我们将探索五种可行的方法…

矩阵错题本

《1800》 1 逗号中间全是0啊 2 代入转置即可证明 3 只是凭借感觉 4 线性代数真的是细节狂魔 经过若干次初等变换&#xff0c;秩相等 5 P1的逆为啥是P1 6 越排后的矩阵变换越排前 对角线矩阵的逆矩阵&#xff0c;除了对角线元素&#xff0c;全换号 7 根据题设给出来的矩阵求…

数据结构学习(四)高级数据结构

高级数据结构 1. 概念 之所以称它们为高级的数据结构&#xff0c;是因为它们的实现要比那些常用的数据结构要复杂很多&#xff0c;能够让我们在处理复杂问题的过程中&#xff0c; 多拥有一把利器&#xff0c;同时掌握好它们的性质&#xff0c;以及所适应的场合&#xff0c;在…

JavaWeb - 2 - HTML、CSS

什么是HTML、CSS&#xff1f; HTML&#xff08;HyperText Markup Language&#xff09;&#xff1a;超文本标记语言 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大&#xff0c;除了文字信息&#xff0c;还可以定义图片、音频、视频等内容 标记语言&…

安装mysql this application requires visual studio 2019 x64报错

提示 this application requires visual studio 2019 x64 缺少依赖 安装依赖 选择对应版本 安装 依赖安装地址 成功进入安装界面

三色标记过程

可达性分析 GC过程中需要对对象图遍历做可达性分析。使用了三色标记法进行分析。 什么三色&#xff1f; 白色&#xff1a;尚未访问过。 黑色&#xff1a;本对象已访问过&#xff0c;而且本对象 引用到 的其他对象 也全部访问过了。 灰色&#xff1a;本对象已访问过&#xff0…

day11_SpringCloud(Nacos注册中心,LoadBalancer,OpenFeign)

文章目录 Spring Cloud Alibaba1 系统架构演进1.1 单体架构1.2 微服务架构1.3 分布式和集群 2 Spring Cloud Alibaba概述2.1 Spring Cloud简介2.2 Spring Cloud Alibaba简介 3 微服务环境准备3.1 工程结构说明3.2 父工程搭建3.3 用户微服务搭建3.3.1 基础环境搭建3.3.2 基础代码…

SkyWalking链路追踪上下文TraceContext的traceId生成的实现原理剖析

结论先行 【结论】 SkyWalking通过字节码增强技术实现&#xff0c;结合依赖注入和控制反转思想&#xff0c;以SkyWalking方式将追踪身份traceId编织到链路追踪上下文TraceContext中。 是不是很有趣&#xff0c;很有意思&#xff01;&#xff01;&#xff01; 【收获】 skywal…

WordPress 从入门到精通【设置 WordPress】

前言&#xff1a;为方便演示&#xff0c;前几张图使用 Playground 环境截取 如果你还不会部署WordPress&#xff0c;请看下面的链接并使用雨云可视化构建一个WordPress站点&#xff1a; 超简单EP面板搭建WordPress网站教程 - 风屿岛 10 (biliwind.com) 进入仪表盘 在搭建完…

uniapp实现单选框卡片选择器,支持微信小程序、H5等多端

采用uniapp-vue3实现的一款单选框卡片选择器&#xff0c;纯CSS实现样式和交互&#xff0c;提供丝滑的动画选中效果&#xff0c;支持不同主题配置&#xff0c;适配多端 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id16901 使用示例 示例代码 <te…

各中间件性能、优缺点对比

参考资料&#xff1a; Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点&#xff1f;

Golang pprof 分析程序的使用内存和执行时间

一、分析程序执行的内存情况 package mainimport ("os""runtime/pprof" )func main() {// ... 你的程序逻辑 ...// 将 HeapProfile 写入文件f, err : os.Create("heap.prof")if err ! nil {panic(err)}defer f.Close()pprof.WriteHeapProfile(f…

最新PyCharm安装详细教程及pycharm配置

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads&#xff0c;进入二级页面&#xff0c;选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

Android 签名机制

V1是内部文件单个签 但是增加apk文件目录下面随意增加文件并不会有影响,它只关心meta-info文件 mf汇总清单的各个文件sha256 V2 整个APK文件,按文件进行hash 那么便不能随便在这里面增加文件了,增加了签名分块&#xff08;不然签名信息存哪里&#xff09;这里涉及一个文件概念 …

H12-821_131

131.如图所示&#xff0c;R1、R2、R3和R4运行OSPF&#xff0c;缺省情况下该网络中选举________个DR。&#xff08;请填写阿拉伯数字&#xff09; 答案&#xff1a;3 注释&#xff1a; DR是链路上的概念&#xff0c;使用路由器接口的IP地址表示。链路的网络类型是广播网络类型或…

【MySQL】深入解析日志系统:undo log、redo log、bin log

文章目录 前言1、undo log1.1、undo log 是什么1.2、事务回滚 2、redo log2.1、redo log 是什么2.2、redo log 刷盘2.3、redo log 硬盘文件 3、bin log3.1、bin log 是什么3.2、bin log 和 redo log 区别3.3、bin log 刷盘3.4、两阶段提交 前言 MySQL数据库提供了功能强大的日…

List<Object>集合对象属性拷贝工具类

目录 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 问题现象&#xff1a; 最近在项目中经常会使用到BeanUtils工具类来作对象的属性字段拷贝&#xff0c;但如果应用到List集合的话就需要遍历去操作了&#xff0c;如下&#xff1a; 打印结果&#xff1a; …

《TCP/IP详解 卷一》第7章 防火墙和NAT

7.1 引言 NAT通常改变源IP和源端口&#xff0c;不改变目的IP和目的端口。 7.2 防火墙 常用防火墙&#xff1a; 包过滤防火墙&#xff08;packet-filter firewall&#xff09; 代理防火墙&#xff08;proxy firewall&#xff09; 代理防火墙作用&#xff1a; 1. 通过代理服务…

微信小程序接入百度地图(微信小程序插件)使用文档

第一步配置域名 :在微信公众平台登录后配置服务域名称:https://apis.map.qq.com 第二步申请密钥 申请开发者密钥申请地址 第三步使用插件 选择添加插件 搜索腾讯位置服务地图选点 选择要授权的小程序 授权完毕会在这里显示插件信息 第四步查看使用文档 跳转至文…