cesium加载天地图、OSM、谷歌底图


加载天地图

首先打开天地图地图服务,然后申请key。
有两种方法加载天地图分别是WebMapTileServiceImageryProviderUrlTemplateImageryProvider*
第一种:

const imageryProvider = new Cesium.WebMapTileServiceImageryProvider({
                    url: 'http://{s}.tianditu.gov.cn/vec_w/wmts?tk=816517e17d1cc31c6eec03ef9fc4bb5b',
                    layer: "vec",
                    style: "default",
                    format: "tiles",
                    tileMatrixSetID: 'w',
                    subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
                    minimumLevel: 0,
                    maximumLevel: 18,
                    credit: 'Tianditu'
});
viewer.imageryLayers.addImageryProvider(imageryProvider);  //加载矢量底图

第二种:

const imageryProvider = new Cesium.UrlTemplateImageryProvider({
      url: 'http://{s}.tianditu.com/DataServer?T=vec_w&X={x}&Y={y}&L={z}&tk=816517e17d1cc31c6eec03ef9fc4bb5b',
      subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
      maximumLevel: 18,
      minimumLevel: 1,
      credit: 'Tianditu'
  });
 viewer.imageryLayers.addImageryProvider(imageryProvider);  //加载矢量底图 

以上示例是加载矢量底图,若要加载影像或者其他只需要更换相应的url,在WebMapTileServiceImageryProvider中还要更改layer参数。url中’‘vec_w’,vec对应底图种类,w对应投影样式,具体可看地图服务页面。两种方法效果差别不大。

加载OSM

const osmImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
    subdomains: ['a', 'b', 'c'], // 子域名列表
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    minimumLevel: 0,
    maximumLevel: 18,
    credit: '© OpenStreetMap contributors'
  });
  viewer.imageryLayers.addImageryProvider(osmImageryProvider ); 

osm基础底图

一些其他风格,基于CRAT渲染,Voyager

const cartoImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png',
    subdomains: ['a', 'b', 'c', 'd'],
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© CartoDB © OpenStreetMap'
});
viewer.imageryLayers.addImageryProvider(cartoImageryProvider );

在这里插入图片描述Positron

const cartoImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://{s}.basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}{r}.png',
    subdomains: ['a', 'b', 'c', 'd'],
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© CartoDB © OpenStreetMap'
});
viewer.imageryLayers.addImageryProvider(cartoImageryProvider );

在这里插入图片描述
Dark Matter

const cartoImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://{s}.basemaps.cartocdn.com/rastertiles/dark_all/{z}/{x}/{y}{r}.png',
    subdomains: ['a', 'b', 'c', 'd'],
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© CartoDB © OpenStreetMap'
});
viewer.imageryLayers.addImageryProvider(cartoImageryProvider );

在这里插入图片描述

加载谷歌底图

const googleRoadmapImageryProvider = new Cesium.UrlTemplateImageryProvider({
  	url: 'https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}',
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© Google'
});
viewer.imageryLayers.addImageryProvider(googleRoadmapImageryProvider ); 

在这里插入图片描述
还有谷歌的一些卫星底图
GOOGLE_CUSTOM

const googleRoadmapImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://mt1.google.com/vt/lyrs=custom_layer_id&x={x}&y={y}&z={z}',
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© Google'
});
viewer.imageryLayers.addImageryProvider(googleRoadmapImageryProvider );

在这里插入图片描述
GOOGLE_HYBRID

const googleHybridImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}',
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© Google'
});
viewer.imageryLayers.addImageryProvider(googleHybridImageryProvider);

在这里插入图片描述
GOOGLE_SATELLITE

const googleSatelliteImageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',
    tilingScheme: new Cesium.WebMercatorTilingScheme(),
    maximumLevel: 19,
    credit: '© Google'
});
viewer.imageryLayers.addImageryProvider(googleSatelliteImageryProvider);

在这里插入图片描述

要在Cesium加载谷歌地图的影像和注记,需要使用Cesium的ImageryLayer和TileMapServiceImageryProvider等类来实现。以下是一些简单的代码示例: ```javascript // 创建谷歌地图的影像图层 var googleImageryProvider = new Cesium.UrlTemplateImageryProvider({ url: 'http://mt{0}.google.cn/vt/lyrs=s&hl=zh-CN&gl=CN&x={1}&y={2}&z={3}&s=Ga', credit: new Cesium.Credit('谷歌地图服务') }); // 创建谷歌地图的注记图层 var googleAnnotationProvider = new Cesium.UrlTemplateImageryProvider({ url: 'http://mt{0}.google.cn/vt/lyrs=h&hl=zh-CN&gl=CN&x={1}&y={2}&z={3}&s=Gali', credit: new Cesium.Credit('谷歌地图服务') }); // 创建谷歌地图的影像图层和注记图层 var googleImageryLayer = new Cesium.ImageryLayer(googleImageryProvider); var googleAnnotationLayer = new Cesium.ImageryLayer(googleAnnotationProvider); // 将图层添加到地球上 viewer.imageryLayers.add(googleImageryLayer); viewer.imageryLayers.add(googleAnnotationLayer); ``` 在上述代码中,我们创建了两个`UrlTemplateImageryProvider`对象,分别用于加载谷歌地图的影像和注记。然后,我们使用这些图层创建了两个`ImageryLayer`对象,并将它们添加到了Cesium的`viewer`对象中。 需要注意的是,谷歌地图的服务地址可能会发生变化,因此需要根据实际情况来修改代码中的URL。此外,由于谷歌地图的使用需要遵守相关法律法规,因此在使用谷歌地图时需要注意遵守相关规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值