arcgis api 调用高德地图服务

1、高德地图具体服务地址及地图展示

首先先列出自己测试过的高德地图服务,具体地址及样式展示如下。使用高德地图需要申请key,具体申请过程,可以在高德开放平台官网申请,操作简单,不做赘述。网址: https://lbs.amap.com/api/android-sdk/guide/create-project/get-key
矢量图(含路网,含注记)
在这里插入图片描述

服务地址:https://webrd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&scl=1&ltype=7&key=###

矢量图(含路网,不含注记)
在这里插入图片描述

服务地址:https://webrd0{1-4}. is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z=###{z}&scl=2&ltype=7key=###
影像不带注记:
在这里插入图片描述
服务地址:http://webst0{1-4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}&key=###

道路带注记
在这里插入图片描述
服务地址:http://webst0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8&ltype=7&key=###
道路不带注记:
在这里插入图片描述
服务地址:http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=11&key=###

2、arcgis api创建高德地图服务调用的类

arcgis api 调用高德地图服务所用的都是切片地图服务。可以使用arcgis api的BaseTileLayer类,扩展此类以创建高德地图图层(自定义图层)。BaseTileLayer类上调用 createSubclass()方法来创建自定义切片图层。重写 getTileUrl() 方法,以便它返回给定级别、行和列的请求磁贴的 URL。

let MyCustomTileLayer = BaseTileLayer.createSubclass({
    properties: {
      urlTemplate: null,
    },
   // 重写getTileUrl()
   // 根据给的级别,行,列,创建tile url 
   getTileUrl: function (level, row, col) {
     return this.urlTemplate.replace("{z}", level).replace("{x}", col).replace("{y}", row);
   }
});

具体可以看arcgis api。https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-BaseTileLayer.html
this.urlTemplate改成我们要调用高德地图服务地址。全部代码如下,代码中key=“#”改为自己申请的key。

import BaseTileLayer from "@arcgis/core/layers/BaseTileLayer";
import esriRequest from "@arcgis/core/request";
const GaodeLayer = BaseTileLayer.createSubclass({
        properties: {
            urlTemplate: null,
        },
        getTileUrl: function(level, row, col) {  
            // 矢量地图没有标注
            // return 'https://webrd0' + (col % 4 + 1) + '.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&scl=2&ltype=7&key=#'.replace("{z}", level).replace("{x}", col).replace("{y}", row);  
            // 矢量地图标注
            return 'https://webrd0' + (col % 4 + 1) +    '.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&scl=1&ltype=7&key=#'.replace("{z}", level).replace("{x}", col).replace("{y}", row); 
            // 影像地图
            // return  'http://webst0' + (col % 4 + 1) + '.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}&key=#'.replace("{z}", level).replace("{x}", col).replace("{y}", row);
            // 道路带注记
            // return 'http://webst0' + (col % 4 + 1) +   '.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8&ltype=7&key=#'.replace("{z}", level).replace("{x}", col).replace("{y}", row);
            // 道路不带注记
            // return 'http://wprd0' + (col % 4 + 1) + '.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=11&key=#'.replace("{z}", level).replace("{x}", col).replace("{y}", row);
        },
        fetchTile: function(level, row, col) {
            var url = this.getTileUrl(level, row, col);
            return esriRequest(url, {
                responseType: "image"
            })
            .then(function(response) {
                var image = response.data;
                var width = this.tileInfo.size[0];
                var height = this.tileInfo.size[0];
                var canvas = document.createElement("canvas");
                var context = canvas.getContext("2d");
                canvas.width = width;
                canvas.height = height;
                context.drawImage(image, 0, 0, width, height);
                return canvas;
            }.bind(this));
        },
    });
export {
    GaodeLayer
}

使用GaodeLayer类

import {GaodeLayer} from "./map/gaodeLayer";
let gdLayer = new GaodeLayer();
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在ArcGIS API加载高德地图作为底图,需要按以下步骤操作: 1. 获取高德地图服务URL。可以通过高德地图开放平台提供的API或其他方法获取到高德地图服务URL。 2. 在ArcGIS API的地图对象中添加图层。首先,创建一个新的ArcGIS地图对象,并将高德地图服务URL作为底图添加到地图中。 ```javascript var map = new Map({ basemap: { baseLayers: [ new TileLayer({ portalItem: { id: { // 高德地图服务URL // 例如:http://webrd0{subDomain}.is.autonavi.com/appmaptile?style=6&x={col}&y={row}&z={level} // "{level}" 表示缩放级别, "{col}" 表示列号, "{row}" 表示行号, "{subDomain}" 表示服务器子域 // 要根据高德地图服务URL的具体格式进行替换 source: "<高德地图服务URL>" } } }) ] } }); ``` 3. 创建视图对象并将地图对象附加到视图中。将地图对象设置为视图的地图属性,然后将视图附加到指定的DOM元素上。 ```javascript var view = new MapView({ container: "viewDiv", // 将视图附加到具有指定ID的DOM元素上 map: map // 设置视图的地图为之前创建的地图对象 }); ``` 通过以上步骤,就可以在ArcGIS API中成功加载高德地图作为底图了。可以根据具体需求进行其他配置和样式的设定,例如放大倍数、中心点、缩放范围等。 ### 回答2: 要加载高德地图作为ArcGIS API的底图,需要按照以下步骤进行操作。 首先,打开ArcGIS API for JavaScript官方网站,并下载最新的API版本。安装完成后,将它引入到你的项目中。 接下来,你需要在你的HTML文件中创建一个容器,用于显示地图。可以使用div元素,并设置其宽度和高度。 在你的JavaScript代码中,首先创建一个地图对象。使用arcgis对象中的Map类可以实现这一功能。在创建地图对象时,需要指定地图容器的ID以及其他的可选参数,如初始缩放级别和初始中心点。 接下来,你需要创建一个底图图层对象,并将其添加到地图对象中。使用arcgis对象中的TileLayer类可以加载高德地图服务作为底图。在创建底图图层对象时,需要指定该服务的URL。 最后,将地图对象添加到地图容器中,并显示地图。使用arcgis对象中的MapView类可以实现这一功能。在创建MapView对象时,需要指定地图对象、地图容器对象以及其他的可选参数,如初始视图范围。 加载高德地图作为ArcGIS API的底图需要使用合适的API版本,创建地图对象、底图图层对象和视图对象,并将它们按照正确的顺序进行添加和显示。通过以上步骤,你可以成功加载高德地图作为ArcGIS API的底图。 ### 回答3: 要将高德地图作为ArcGIS API的底图,可以按照以下步骤进行: 1. 首先,在ArcGIS API的官方文档中找到相关的代码示例或文档,这些示例和文档将指导你如何加载外部地图服务。 2. 打开ArcGIS API的开发环境,创建一个新的HTML文件。 3. 在HTML文件中,引入ArcGIS API的JavaScript库文件,并对其进行初始化。 4. 在JavaScript代码中,创建一个地图对象,并指定地图的初始显示范围、放大级别等。 5. 使用ArcGIS API提供的图层对象,加载高德地图服务URL作为底图图层。 6. 设置地图对象的底图图层为加载高德地图图层。 7. 运行或部署该HTML文件,以查看加载高德地图作为ArcGIS API的底图的效果。 需要注意的是,使用高德地图作为ArcGIS API的底图需要确保高德地图服务的URL和相关访问秘钥是有效的,并且遵循高德地图ArcGIS API的使用协议和限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值