百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

基于ArcGIS API for JS在内网中加载显示WeServer发布的离线地图

qiyuwang 2025-03-12 20:11 13 浏览 0 评论

01.概述

我们之前为大家分享过在三维地球开源平台离线加载卫星影像的方法,主要包括基于桌面端的OsgEarth开源三维地球和基于Web端的Cesium开源三维地球等平台的局域网离线影像加载。

另外,也为大家分享过在二维开源平台离线加载卫星影像的方法,主要包括基于OpenLayers的内网WebGIS离线部署、基于MapBox的内网WebGIS离线部署和基于 GoogleMap 离线 API 在内网中加载离线卫星地图等具体操作方法。

这里,再为大家分享一下如何基于ArcGIS API for JavaScript 在内网中离线加载海量卫星影像的方法。

02.准备工作

在开始之前,需要先准备离线数据发布软件、离线卫星影像示例数据、OpenLayers开发源码和本机IP地址等。

地图发布软件:需要在内网发布离线卫星影像,请确保地图发布服务中间件版本为4.0.6以上,如果低于该版本,请通过私信回复“中间件”免费获取最新版本安装包,也可以直接在官网下载。

离线示例数据:本文提供的离线示例数据包括墨卡托投影和WGS84投影的卫星影像与地名标签数据,由于这里主要是为了进行功能性演示,因此只提示前10级影像数据。


私信“示例数据”获取示例数据

ArcGIS API 开发源码:ArcGIS API for JavaScript源码可以从ArcGIS官网下载最新版,后面会说明具体下载方法。

当然,也可以通过私信回复“ArcGISAPIforJS”获取ArcGIS API for JavaScript开发包源码文件。

本机IP地址:由于会用到本机IP作为访问地址,可以通过在DOS窗口中运行“IPConfig”命令或其它方式获取本机IP地址以备用,如下图所示。


03.ArcGIS API for JavaScript 开发包下载


这里我们顺便分享一下从ArcGIS官网下载ArcGIS API for JavaScript 开发包的流程,如果你不需要从官网下载,请略过本节。

另外,随着ArcGIS官网的更新,下文中的附带的截图可能会与官方网站不一致,但大的框架短期内应该变化不会很大,这里仅供参考。

用Chrome打开ArcGIS的官方网站“arcgis.com”,并点击“ArcGIS\ArcGIS for Developers”菜单,如下图所示。


在打开的新页面中,点击“Documentation\ArcGIS API for Javascript”菜单,如下图所示。


在打开的“ArcGIS API for Javascript”页面中,点击“Get the API”,如下图所示。


在打开的“Get the API”页面中,点击“Download API”,如下图所示。


在打开的“Download”页面中,点击“ArcGIS API for JavaScript download page”项,如下图所示。


在下载页面中,需要登录ArcGIS帐号,才可以进入到最后的下载面页,如果没有帐号需要先注册后,再登录。


在该下载页面中,可以下载API和相关的开发文档,如下图所示。


最后,分别下载的API与SDK文件,如下图所示。


04.部署ArcGIS API for JavaScript源码网站


ArcGIS API for JavaScript 的API和sdk解压之后,如下图所示。


在Windows控制面板中打开“管理工具”,如下图所示。


打开IIS网站管理器,如下图所示。


在“网站”树节点单击鼠标右键,然后选择“添加网站”菜单,如下图所示。


网站名称可以任意取,这里我们取名为“ArcGIS API for JavaScript”,物理路径为源码所在路径,并将端口号设置为默认值“80”,如下图所示。


配置完成之后点击“确定”按钮之后完成网站配置,如下图所示。


这里为了更方便地向大家展示API和SDK,于是网站部署的目录指向的是API和SDK共同所在的目录。

在实际应用过程中,网站部署目录一般可以指定到源码所在的目录,这样更符合实际应用的逻辑,即“F:\ArcGISAPIforJS\arcgis_js_v416_api\arcgis_js_api\library\4.16”目录。

现在,在本机通过浏览器打开以下URL地址,可以查看ArcGIS API for JavaScript的示例代码。

http://localhost/arcgis_js_v416_sdk/arcgis_js_api/sdk/latest/sample-code/



在本机通过浏览器打开以下URL地址,可以查看ArcGIS API for JavaScript相关的API调用代码接口和函数等。

http://localhost/arcgis_js_v416_sdk/arcgis_js_api/sdk/latest/api-reference/



在本机通过浏览器打开以下URL地址,可以查看ArcGIS API for JavaScript离线安装部署的方法与注意事项,尤其是关于对dojo.js和init.js文件修改的说明,这点对于离线安装部署非常重要。

http://localhost/arcgis_js_v416_api/arcgis_js_api/library/downloads/install-windows/index.html


按照上文的离线安装部署说明,我们分别对dojo.js和init.js文件进行修改,分别搜索“[HOSTNAME_AND_PATH_TO_JSAPI]”字符串,并将该字符串直接替换为上述JS文件所在路径“127.0.0.1/arcgis_js_v416_api/arcgis_js_api/library/4.16/”,如下图所示。

这里以修改dojo.js文件为例,init.js文件的修改方法完相相同,下图为搜索到的“[HOSTNAME_AND_PATH_TO_JSAPI]”字符串。


将搜索到的“[HOSTNAME_AND_PATH_TO_JSAPI]”字符串,替换为本地服务器的路径,如下图所示。


到此为止,ArcGIS API for JavaScript源代码的部署和配置就完成了,接下来我们就可以在此基础之上发布离线的卫星影像地图数据了。

05.墨卡托离线卫星影像的发布

这里我们采用WeServer对WGS84离线卫星影像进行发布。

WeServer软件的安装方法,请参阅“全球卫星影像离线发布神器《水经注地图发布服务中间件4.0》正式发布”一文。

由于这里只演示卫星地图在ArcMap中的离线调用方法,因此暂不需要发布高程DEM数据。

但需要注意的是发布的卫星影像和设置的投影务必要保证统一,且端口号没有被其它程序占用,如下图所示。


安装完成后,会显示如下图所示信息。


打开Windows任务管理器,如果WeServer服务的状态显示“正在运行”,则说明中间件服务安装成功并已经正常运行,如下图所示。


确保服务运行正确后,可以在浏览器中打开“Z=7/Y=48/X=105”的标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/mercator/7/48/105.jpg

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示北京位置区域的卫星影像瓦片,如下图所示。


同样地,也可以通过在本机浏览器中打开“Z=7/Y=48/X=105”的地名标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/mercator/7/48/105.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示地名标签结果,如下图所示。


在微图中打开瓦片网格显示功能,我们可以看到上文中的瓦片“Z=7/Y=48/X=105”,在微图中对应的是“Z=8/X=49/Y=106”瓦片。

也就是说,微图软件中的瓦片编号是从1开始的,因此行列号都会比WeServer大1,且它的编号显示顺序为ZXY,而WeServer发布时的顺序为ZYX,如果你了解它们的区别,会有助于你在调用WeServer发布的瓦片时进行调试。


06.墨卡托卫星影像在ArcGIS API for JavaScript中的离线加载

在发布网站的根目录新建一个Web页面文件,任意文件名皆可,这里我们把它命名为“SampleForMercator.html”,其中的“web.config”文件是为了解决跨域访问题,如下图所示。


在“SampleForMercator.html”文件中,分别添加卫星影像与地名标签图层,如下图所示。


通过私信回复“ArcGISAPIforJS”可获取ArcGIS API for JavaScript源码文件,解压后在目录中,已经为你提供了“SampleForMercator.html”源码文件,但需要特别注意的是需要将IP地址改为本机IP地址,前文我们已经提到过了获取本机IP的方法。

最后,通过浏览器打开该页面URL地址“http://192.168.0.10/SampleForMercator.html”即可查看墨卡托卫星影像的发布效果,如下图所示。


以就是墨卡托卫星影像在ArcGIS API for JavaScript中离线加载的方法,接下来我们会分享WGS84卫星影像的离线加载方法。

07.WGS84卫星影像离线发布

由于之前发布的是墨卡托卫星影像,因此发布WGS84卫星影像时需要重新对WeServer的数据源与坐标投影进行配置。

设置数据源与坐标投影除了可以在安装界面中配置外,还可以通过修改配置文件的方式设置。

在WeServer安装路径中,有一个用于配置WeServer参数的“WeServerConfig.ini”文件,如下图所示。


在配置文件中,重新设置卫星影像路径和地名标签路径,然后将投影设置为“WGS_84”,即经纬度投影,如下图所示。


在“WeServerConfig.ini”文件中完成相关参数配置并保存后,双击“WeServer.exe”文件,会重新启动服务并使配置参数生效。


在确保服务运行的情况下,可以在浏览器中打开“Z=7/Y=35/X=210”的标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/wgs84/7/35/210.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示北京位置区域的卫星影像瓦片,如下图所示。


同样地,也可以通过在本机浏览器中打开“Z=7/Y=35/X=210”的地名标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/wgs84/7/35/210.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示地名标签结果,如下图所示。


在微图中打开瓦片网格显示功能,我们可以看到上文中的瓦片“Z=7/Y=35/X=210”,在微图中对应的是“Z=9/X=211/Y=36”瓦片。

也就是说,微图软件中的瓦片的层级比WeServer发布的层级大2,行列号比WeServer大1,且它的编号显示顺序为ZXY,而WeServer发布时的顺序为ZYX,如果你了解它们的区别,会有助于你在调用WeServer发布的瓦片时进行调试。


08.WGS84投影卫星影像的内网离线加载显示

在网站发布根目录中新建“SampleForWGS84.html”网站页面文件,如下图所示。


在“SampleForWGS84.html”网站页面文件中添加卫星影像与地名标签加载代码,如下图所示。


通过关注微信公众号“水经注GIS”并回复“ArcGISAPIforJS”可获取ArcGIS API for JavaScript源码文件,解压后在目录中,已经为你提供了“SampleForWGS84.html”源码文件,但需要特别注意的是需要将IP地址改为本机IP地址,前文我们已经提到过了获取本机IP的方法。

打开网址“http://192.168.0.10/SampleForWGS84.html”,可以显示加载本地影像如下图所示。


至此,ArcGIS API for JavaScript在内网中加载显示WeServer发布的离线地图的目的就达到了。这样一来,当前这台电脑在内网中就是一台标准地图服务器,内网中任何一台电脑都可以通过打开网址离线查看地图,但需要注意的是需要将网址中的IP改为本机IP地址。

09.总结

以上就是基于 ArcGIS API for JavaScript在内网中离线加载卫星地图方法的全部说明,主要包括了墨卡托与WGS84卫星影像的发布、发布瓦片地址的有效性检测和在ArcMap中进行加载显示等内容。

由于本文中提供的数据为示例数据,旨在说明地图发布服务中间件的内网离线发布功能,因此卫星影像数据和地名标签都仅仅提供全球前10级数据。

通过以上方法,你可以轻松离线加载22.3TB的《水经注全国离线地图5.1》中的全国卫星影像数据,也可以离线加载《水经注全球离线地图2.0》中73.9TB的海量卫星影像数据。

如果需要免费高清卫星影像,你可以通过私信并回复“免费数据”,领取一个省的高清卫星影像数据,然后更新到对应的数据目录后,重新启动WeServer服务即可!

相关推荐

# 安装打开 ubuntu-22.04.3-LTS 报错 解决方案

#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...

利用阿里云镜像在ubuntu上安装Docker

简介:...

如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本

UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...

Ubuntu 16.10内部代号确认为Yakkety Yak

在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...

如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)

在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

如何查看Linux的IP地址(如何查看Linux的ip地址)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...

怎么看电脑系统?(怎么看电脑系统配置)

要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...

如何查询 Linux 内核版本?这些命令一定要会!

Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...

深度剖析:Linux下查看系统版本与CPU架构

在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...

504 错误代码解析与应对策略(504错误咋解决)

在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...

猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录

10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...

域名解析的原理是什么?域名解析的流程是怎样的?

域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...

Linux无法解析域名的解决办法(linux 不能解析域名)

如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。  此时,需要手动修改配置文件:  /etc/resolv.conf  将域名解析服务器手动添加到配置文件中  该文件是DNS域名解...

域名劫持是什么?(域名劫持是什么)

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...

取消回复欢迎 发表评论: