cesium-map
Cesium 地图插件,用于添加国内各大地图厂商的地图
使用前引入 Cesium 框架,由于Cesium放弃了ImageryProvider部分属性,建议使用`viewer.imageryLayers.add`添加地图
安装
NPM / YARN
npm install @dvgis/cesium-map
-----------------------------
yarn add @dvgis/cesium-map
import { AMapImageryProvider,BaiduImageryProvider, GeoVisImageryProvider } from '@dvgis/cesium-map'
CDN
<script src="https://cdn.jsdelivr.net/npm/@dvgis/cesium-map/dist/cesium.map.min.js"></script>
AMapImageryProvider
高德地图
var options = {
style: 'img',
crs: 'WGS84'
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.AMapImageryProvider(options)))
BaiduImageryProvider
百度地图
var options = {
style: 'normal',
crs: 'WGS84'
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.BaiduImageryProvider(options)))
GeoVisImageryProvider
星图地图
var options = {
style: 'vec',
key:'',
format:'png'
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.GeoVisImageryProvider(options)))
GoogleImageryProvider
谷歌地图
var options = {
style: 'elec',
crs: 'WGS84'
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.GoogleImageryProvider(options)))
TdtImageryProvider
天地图
var options = {
style: 'vec',
key:'',
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.TdtImageryProvider(options)))
TencentImageryProvider
腾讯地图
var options = {
style: 1
}
viewer.imageryLayers.add(new Cesium.ImageryLayer( new Cesium.TencentImageryProvider(options)))
以下类用于自定义瓦片的加载,根据瓦片比例尺和切图原点重新计算瓦片行列号,可用于一些地方坐标系或者自定义切片方案的地图瓦片
CustomGeographicTilingScheme
自定义地理平铺方案
根据瓦片的比例尺(degrees/px)
和切图原点重新计算瓦片行列号,最终会采用EPSG:4326
的瓦片计算规则平铺瓦片(可能会存在偏移)
var options = {
origin: [-180,90],
zoomOffset: 0,
tileSize: 256,
resolutions:[],
ellipsoid:Cesium.Ellipsoid.WGS84,
rectangle:Cesium.Rectangle.MAX_VALUE,
}
viewer.imageryLayers.add(new Cesium.ImageryLayer(
new Cesium.TileCoordinatesImageryProvider({
tilingScheme: new Cesium.CustomGeographicTilingScheme(options),
})
))
CustomMercatorTilingScheme
自定义墨卡托平铺方案
根据瓦片的比例尺(meters/px)
和切图原点重新计算瓦片行列号,最终会采用EPSG:3857
的瓦片计算规则平铺瓦片(可能会存在偏移)
var options = {
origin: [-20037508.3427892, 20037508.3427892],
zoomOffset: 0,
tileSize: 256,
resolutions:[],
ellipsoid:Cesium.Ellipsoid.WGS84,
rectangleSouthwestInMeters: null,
rectangleNortheastInMeters: null,
}
viewer.imageryLayers.add(new Cesium.ImageryLayer(
new Cesium.TileCoordinatesImageryProvider({
tilingScheme: new Cesium.CustomMercatorTilingScheme(options),
})
))
示例
http://dc.dvgis.cn