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

相关推荐

  • 虚拟主机搬迁服务器,网站数据如何迁移才安全?

    当网站或应用程序的成长超越了虚拟主机所能提供的资源与性能时,将虚拟主机搬迁到服务器便成为了一个必然的选择,这不仅仅是一次简单的数据迁移,更是项目向更高层次发展的重要里程碑,它意味着从共享资源到独享资源的跨越,为未来的无限可能奠定了坚实的基础,为何需要从虚拟主机升级?虚拟主机以其低成本、易操作的特点,是许多初创项……

    2025-10-15
    009
  • yii框架如何配置虚拟主机实现在本地访问?

    在Web开发中,使用Yii框架时,配置虚拟主机是实现本地开发环境的关键步骤,通过虚拟主机,可以在本地模拟线上环境,方便调试和测试,以下是详细的配置步骤和注意事项,帮助开发者顺利完成Yii框架的虚拟主机设置,环境准备与依赖配置在开始配置虚拟主机前,确保本地环境已安装必要的服务和工具,需安装Apache或Nginx……

    2025-11-15
    005
  • 如何提高大量数据读取的效率与准确性?

    在处理大量数据时,首先需要进行数据读取。这通常涉及到选择合适的工具和技术来高效地从各种来源获取数据。有效的数据读取策略可以确保信息准确无误地加载到系统中,为后续的数据分析和处理打下坚实基础。

    2024-07-29
    0012
  • 仙神之怒的服务器更新计划何时公布?

    《仙神之怒》的服务器更新时间通常由游戏开发商或运营团队决定,并没有固定的时间表。为了获取最新的更新信息,玩家应关注游戏的官方网站、社交媒体账号或相关游戏论坛公告。如果游戏最近有维护或更新计划,相关信息通常会在这些渠道发布。

    2024-08-15
    009

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信