arcgis api加载天地图

使用ArcGIS API加载天地图,需先申请天地图Key,再通过特定代码配置实现,如以basetilelayer方式加载。

使用 ArcGIS API 加载天地图

arcgis api加载天地图

一、准备工作

获取天地图瓦片服务地址

天地图提供了多种类型的地图瓦片服务,例如矢量地图、影像地图等,以下是一些常用的天地图瓦片服务地址示例:

地图类型 服务地址
矢量地图 http://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=YOUR_TIANMAP_API_KEY
影像地图 http://t{0-7}.tianditu.gov.cn/img_w/wmts?tk=YOUR_TIANMAP_API_KEY

> 注意:需要去天地图官网申请 API Key,将上述地址中的YOUR_TIANMAP_API_KEY 替换为你实际获取的密钥。

引入 ArcGIS API 相关库

在 HTML 文件中,通过<script> 标签引入 ArcGIS JavaScript API 的相关脚本,

<script src="https://js.arcgis.com/4.26/"></script>

二、创建地图实例并加载天地图瓦片

定义地图配置

使用 ArcGIS API 创建地图时,需要定义地图的相关配置,包括中心点、缩放级别等,要指定天地图瓦片作为图层添加到地图中,以下是一个简单的示例代码:

arcgis api加载天地图

require([
  "esri/Map",
  "esri/layers/TileLayer"
], function(Map, TileLayer) {
  // 定义天地图矢量图层
  var tiandituVecLayer = new TileLayer({
    url: "http://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=YOUR_TIANMAP_API_KEY",
    sublayers: [{
      id: 0,
      title: "矢量地图",
      visible: true
    }]
  });
  // 创建地图实例并添加天地图矢量图层
  var map = new Map({
    basemap: "streets", // 可以先使用 ArcGIS 自带的底图,后续可替换为天地图图层
    // 设置地图初始中心点和缩放级别
    center: [116.397428, 39.90923], // 以北京为例
    zoom: 10,
    // 将天地图矢量图层添加到地图的图层列表中
    layers: [tiandituVecLayer]
  });
  // 如果只想显示天地图图层,可以移除默认的 basemap 并设置天地图图层为唯一图层
  map.remove(map.basemapGalleryLayer);
  map.add(tiandituVecLayer);
});

处理瓦片图层的子图层(可选)

天地图瓦片服务可能包含多个子图层,比如矢量地图服务中有不同级别的道路、水系等子图层,如果需要对特定子图层进行操作,比如控制其显示或设置样式等,可以通过sublayers 属性进一步配置,只显示天地图矢量图层中的某个特定子图层:

var tiandituVecLayer = new TileLayer({
  url: "http://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=YOUR_TIANMAP_API_KEY",
  sublayers: [{
    id: 0, // 子图层 ID,根据天地图服务文档确定具体含义
    title: "矢量地图 基础层",
    visible: true // 设置为可见
  }, {
    id: 1,
    title: "矢量地图 道路层",
    visible: false // 设置为不可见,可根据需求调整
  }]
});

三、优化与交互(可选)

添加缩放控件等交互组件

为了让用户更好地操作地图,可以添加一些常用的交互组件,如缩放控件、导航控件等,ArcGIS API 提供了丰富的控件可供使用,添加缩放控件到地图右上角:

map.addControl(new esri.dijit.Zoom({
  position: "top-right"
}));

响应地图事件(可选)

可以根据业务需求,监听地图的各种事件,如点击事件、鼠标移动事件等,并在事件回调函数中进行相应的处理,监听地图的点击事件,在点击位置添加一个标记:

map.on("click", function(event) {
  var point = event.mapPoint;
  var marker = new esri.Graphic(point, new esri.symbol.SimpleMarkerSymbol());
  map.graphics.add(marker);
});

四、相关问题与解答

问题 1:申请天地图 API Key 后,如何确保其在 ArcGIS API 中正常使用?

arcgis api加载天地图

解答:申请到天地图 API Key 后,将其准确无误地替换到天地图瓦片服务地址中的tk 参数位置,确保在网络环境中能够正常访问天地图的瓦片服务地址,没有被防火墙或其他网络限制所阻挡,要注意天地图 API Key 的使用权限和有效期等相关规则,按照天地图官方的要求合法使用。

问题 2:如果我想同时加载天地图的矢量图层和影像图层,该如何操作?

解答:可以按照类似加载单个天地图图层的方法,分别创建两个TileLayer 实例,一个用于矢量图层,一个用于影像图层,然后将这两个图层都添加到地图的layers 属性中。

require([
  "esri/Map",
  "esri/layers/TileLayer"
], function(Map, TileLayer) {
  // 定义天地图矢量图层
  var tiandituVecLayer = new TileLayer({
    url: "http://t{0-7}.tianditu.gov.cn/vec_w/wmts?tk=YOUR_TIANMAP_API_KEY",
    sublayers: [{
      id: 0,
      title: "矢量地图",
      visible: true
    }]
  });
  // 定义天地图影像图层
  var tiandituImgLayer = new TileLayer({
    url: "http://t{0-7}.tianditu.gov.cn/img_w/wmts?tk=YOUR_TIANMAP_API_KEY",
    sublayers: [{
      id: 0,
      title: "影像地图",
      visible: true
    }]
  });
  // 创建地图实例并添加天地图矢量和影像图层
  var map = new Map({
    basemap: "streets",
    center: [116.397428, 39.90923],
    zoom: 10,
    layers: [tiandituVecLayer, tiandituImgLayer] // 同时添加两个图层
  });
  // 移除默认的 basemap(如果需要只显示天地图图层)
  map.remove(map.basemapGalleryLayer);
});

这样,在创建地图实例时,就会同时加载并显示天地图的矢量图层和影像图层,你可以根据需要控制各个图层的显示顺序、可见性等属性。

以上内容就是解答有关“arcgis api加载天地图”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-04-25 16:05
下一篇 2025-04-25 16:13

相关推荐

  • 奥维地址中的服务器IP地址指的是什么?

    摘要:奥维地址中的服务器IP地址是指用于访问奥维地图服务的特定互联网协议(IP)地址。这个地址允许用户连接到托管奥维地图数据的服务器,从而在设备上查看和交互地理信息。

    2024-08-31
    0018
  • 服务器配置故障频发,究竟是什么原因导致的?

    服务器配置故障是影响系统稳定性和性能的关键因素之一,在探讨服务器配置故障的原因时,我们需要从硬件、软件、网络以及人为错误等多个角度进行分析,以下是一个详细的分析,包括可能的故障原因、影响及解决方案,硬件故障硬件故障是服务器配置中最常见的问题之一,它直接影响到服务器的正常运行, 硬件组件 常见故障原因 影响 解决……

    2024-12-09
    0093
  • 虚拟主机免费版云空间真的能免费使用吗?

    在数字化时代,无论是个人博客、小型企业官网还是初创项目,都离不开一个稳定可靠的网站托管环境,虚拟主机免费版云空间作为一种入门级选择,为预算有限或刚起步的用户提供了低成本的解决方案,但同时也伴随着一定的局限性,本文将深入探讨虚拟主机免费版云空间的核心特点、优势、潜在风险以及适用场景,帮助读者全面了解这一服务类型……

    2025-11-07
    004
  • 为什么服务器重启后网页无法访问?

    当服务器重启后,用户可能会遇到无法打开网页的问题,这种情况可能由多种原因引起,包括服务器配置问题、网络连接问题、DNS解析问题等,本文将详细探讨这些可能的原因,并提供相应的解决方案,服务器配置问题服务器重启后,如果网页仍然无法打开,首先需要检查的是服务器的配置是否正确,以下是一些常见的配置问题及其解决方法:1……

    2024-12-20
    009

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信