vue 3.x 结合 arcgis 4.x 加载国内四种在线底图 百度、腾讯、高德、天地图源码
时间: 2023-06-08 11:01:47 浏览: 198
arcgis api 3.x for js 入门开发系列十七在线天地图、百度地图、高德地图源码
Vue 3.x是一款流行的JavaScript框架,而ArcGIS 4.x是一款强大的GIS工具包。如何结合Vue 3.x和ArcGIS 4.x以加载国内四种在线底图——百度、腾讯、高德、天地图的源代码呢?
首先,在Vue 3.x中创建一个新的组件,并且在初始化时,使用ArcGIS 4.x中的Map和MapView类创建一个新的地图对象。然后,使用这个新的地图对象来加载国内四种在线底图之一的地址,例如使用百度地图,可以使用ArcGIS 4.x中的Basemap类和BasemapLayer类,以及BaiduMapsLayer类,通过以下代码实现:
```javascript
import {Map, MapView} from '@arcgis/core';
import Basemap from '@arcgis/core/Basemap';
import BasemapLayer from '@arcgis/core/BasemapLayer';
import BaiduMapsLayer from '@arcgis/core/layers/BaiduMapsLayer';
export default {
name: 'Map',
mounted () {
const map = new Map({
basemap: new Basemap({
baseLayers: [
new BasemapLayer({
url: 'https://maponline{subDomain}.bdimg.com/tile/?qt=vtile&x={col}&y={row}&z={level}&styles=pl&scaler=1&udt=20191210',
subDomains: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
title: 'Baidu Map',
id: 'baidu-map'
})
]
})
});
const view = new MapView({
container: 'map',
map: map,
center: [118.7967, 32.060]; // 设置地图中心点的经纬度
zoom: 11
});
const baiduLayer = new BaiduMapsLayer();
map.add(baiduLayer);
}
};
```
这段代码首先使用Map类创建一个新的地图对象,然后使用Basemap类和BasemapLayer类创建一个新的底图,其中设置了百度地图地址、子域名、标题和id等信息。接着,使用MapView类创建一个新的地图视图对象,并设置地图中心坐标和缩放级别。最后,创建一个新的BaiduMapsLayer对象,并使用`map.add()`方法将其添加到地图中。
使用同样的方式,可以分别加载腾讯、高德和天地图的底图地址,在使用BaiduMapsLayer、QQMapsLayer、GaodeMapsLayer或TdtMapsLayer类加载相应的地图图层即可。
至此,我们就成功地实现了在Vue 3.x中结合ArcGIS 4.x加载国内四种在线底图的任务。
阅读全文