diff --git a/README.md b/README.md index f97bec8..5d450f9 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ viewer.imageryLayers.add(new Cesium.ImageryLayer( new AmapImageryProvider(option > 百度地图 -```js +```js var options = { style: 'normal', // style: img、vec、normal、dark crs: 'WGS84' // 使用84坐标系,默认为:BD09 @@ -72,11 +72,12 @@ viewer.imageryLayers.add(new Cesium.ImageryLayer( new GeoVisImageryProvider(opti ## GoogleImageryProvider -> 谷歌地图(已被墙) +> 谷歌地图 ```js var options = { - style: 'img' //style: img、elec、ter + style: 'elec',//style: img、elec、ter,cva,img_cva + crs: 'WGS84' // 使用84坐标系,默认为:GCJ02, img除外 } viewer.imageryLayers.add(new Cesium.ImageryLayer( new GoogleImageryProvider(options))) ``` diff --git a/package.json b/package.json index 79e3d92..264b305 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dvgis/cesium-map", - "version": "3.0.1", + "version": "3.1.0", "repository": "https://github.com/dvgis/cesium-map.git", "homepage": "https://www.dvgis.cn", "author": "Caven Chen ", diff --git a/src/imagery/amap/AmapImageryProvider.js b/src/imagery/amap/AmapImageryProvider.js index 9cefdf1..8b50f8b 100644 --- a/src/imagery/amap/AmapImageryProvider.js +++ b/src/imagery/amap/AmapImageryProvider.js @@ -3,7 +3,7 @@ * @Date: 2020-01-15 20:31:28 */ -import AmapMercatorTilingScheme from './AmapMercatorTilingScheme' +import GCJ02TilingScheme from '../tiling-scheme/GCJ02TilingScheme' import { UrlTemplateImageryProvider } from '@cesium/engine' const TILE_URL = { @@ -24,7 +24,7 @@ class AmapImageryProvider extends UrlTemplateImageryProvider { options['subdomains'] = ['01', '02', '03', '04'] } if (options.crs === 'WGS84') { - options['tilingScheme'] = new AmapMercatorTilingScheme() + options['tilingScheme'] = new GCJ02TilingScheme() } super(options) } diff --git a/src/imagery/baidu/BaiduImageryProvider.js b/src/imagery/baidu/BaiduImageryProvider.js index 95ff400..2158356 100644 --- a/src/imagery/baidu/BaiduImageryProvider.js +++ b/src/imagery/baidu/BaiduImageryProvider.js @@ -6,12 +6,11 @@ import { Cartesian2, WebMercatorTilingScheme, - DeveloperError, ImageryProvider, UrlTemplateImageryProvider, } from '@cesium/engine' -import BaiduMercatorTilingScheme from './BaiduMercatorTilingScheme' +import BD09TilingScheme from '../tiling-scheme/BD09TilingScheme' const TILE_URL = { img: '//shangetu{s}.map.bdimg.com/it/u=x={x};y={y};z={z};v=009;type=sate&fm=46', @@ -35,7 +34,7 @@ class BaiduImageryProvider extends UrlTemplateImageryProvider { for (let i = 0; i < 19; i++) { resolutions[i] = 256 * Math.pow(2, 18 - i) } - options['tilingScheme'] = new BaiduMercatorTilingScheme({ + options['tilingScheme'] = new BD09TilingScheme({ resolutions, rectangleSouthwestInMeters: new Cartesian2(-20037726.37, -12474104.17), rectangleNortheastInMeters: new Cartesian2(20037726.37, 12474104.17), diff --git a/src/imagery/google/GoogleImageryProvider.js b/src/imagery/google/GoogleImageryProvider.js index ebceae7..a8b75b2 100644 --- a/src/imagery/google/GoogleImageryProvider.js +++ b/src/imagery/google/GoogleImageryProvider.js @@ -4,11 +4,14 @@ */ import { UrlTemplateImageryProvider } from '@cesium/engine' +import GCJ02TilingScheme from '../tiling-scheme/GCJ02TilingScheme' const TILE_URL = { - img: '//mt{s}.google.cn/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}&s=Gali', - elec: '//mt{s}.google.cn/vt/lyrs=m@207000000&hl=zh-CN&gl=CN&src=app&x={x}&y={y}&z={z}&s=Galile', - ter: '//mt{s}.google.cn/vt/lyrs=t@131,r@227000000&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}&s=Galile', + img: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s&x={x}&y={y}&z={z}', + elec: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=m&x={x}&y={y}&z={z}', + cva: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=h&x={x}&y={y}&z={z}', + ter: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=t@131,r&x={x}&y={y}&z={z}', + img_cva: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=y&x={x}&y={y}&z={z}', } class GoogleImageryProvider extends UrlTemplateImageryProvider { @@ -19,7 +22,9 @@ class GoogleImageryProvider extends UrlTemplateImageryProvider { options.protocol || '', TILE_URL[options.style] || TILE_URL['elec'], ].join('') - options['subdomains'] = options.subdomains || ['1', '2', '3'] + if (options.crs === 'WGS84') { + options['tilingScheme'] = new GCJ02TilingScheme() + } super(options) } } diff --git a/src/imagery/baidu/BaiduMercatorProjection.js b/src/imagery/projection/BD09Projection.js similarity index 99% rename from src/imagery/baidu/BaiduMercatorProjection.js rename to src/imagery/projection/BD09Projection.js index 120b7e6..19ff3ca 100644 --- a/src/imagery/baidu/BaiduMercatorProjection.js +++ b/src/imagery/projection/BD09Projection.js @@ -72,7 +72,7 @@ const LL2MC = [ ], ] -class BaiduMercatorProjection { +class BD09Projection { constructor() { this.isWgs84 = false } @@ -404,4 +404,4 @@ class BaiduMercatorProjection { } } -export default BaiduMercatorProjection +export default BD09Projection diff --git a/src/imagery/baidu/BaiduMercatorTilingScheme.js b/src/imagery/tiling-scheme/BD09TilingScheme.js similarity index 91% rename from src/imagery/baidu/BaiduMercatorTilingScheme.js rename to src/imagery/tiling-scheme/BD09TilingScheme.js index 15886db..079f36c 100644 --- a/src/imagery/baidu/BaiduMercatorTilingScheme.js +++ b/src/imagery/tiling-scheme/BD09TilingScheme.js @@ -12,13 +12,13 @@ import { defined, } from '@cesium/engine' -import BaiduMercatorProjection from './BaiduMercatorProjection' +import BD09Projection from '../projection/BD09Projection.js' import CoordTransform from '../../transform/CoordTransform' -class BaiduMercatorTilingScheme extends WebMercatorTilingScheme { +class BD09TilingScheme extends WebMercatorTilingScheme { constructor(options) { super(options) - let projection = new BaiduMercatorProjection() + let projection = new BD09Projection() this._projection.project = function (cartographic, result) { result = result || {} result = CoordTransform.WGS84ToGCJ02( @@ -58,7 +58,7 @@ class BaiduMercatorTilingScheme extends WebMercatorTilingScheme { * @param y * @param level * @param result - * @returns {module:cesium.Rectangle|*} + * @returns {Rectangle|*} */ tileXYToNativeRectangle(x, y, level, result) { const tileWidth = this.resolutions[level] @@ -107,4 +107,4 @@ class BaiduMercatorTilingScheme extends WebMercatorTilingScheme { } } -export default BaiduMercatorTilingScheme +export default BD09TilingScheme diff --git a/src/imagery/amap/AmapMercatorTilingScheme.js b/src/imagery/tiling-scheme/GCJ02TilingScheme.js similarity index 91% rename from src/imagery/amap/AmapMercatorTilingScheme.js rename to src/imagery/tiling-scheme/GCJ02TilingScheme.js index d62188c..05bc018 100644 --- a/src/imagery/amap/AmapMercatorTilingScheme.js +++ b/src/imagery/tiling-scheme/GCJ02TilingScheme.js @@ -13,7 +13,7 @@ import { import CoordTransform from '../../transform/CoordTransform' -class AmapMercatorTilingScheme extends WebMercatorTilingScheme { +class GCJ02TilingScheme extends WebMercatorTilingScheme { constructor(options) { super(options) let projection = new WebMercatorProjection() @@ -44,4 +44,4 @@ class AmapMercatorTilingScheme extends WebMercatorTilingScheme { } } -export default AmapMercatorTilingScheme +export default GCJ02TilingScheme