| name: '电子+路况' | name: '电子+路况' | ||||
| }) | }) | ||||
| // let layer = new DC.TilesetLayer('layer') | |||||
| // viewer.addLayer(layer) | |||||
| // let tileset = new DC.Tileset( | |||||
| // '//resource.dvgis.cn/data/3dtiles/dayanta/tileset.json' | |||||
| // ) | |||||
| // tileset.setHeight(-420) | |||||
| // layer.addOverlay(tileset) | |||||
| // viewer.flyTo(tileset) | |||||
| } | } | ||||
| DC.ready({ | DC.ready({ | ||||
| baseUrl:'../libs/dc-sdk/resources/' | baseUrl:'../libs/dc-sdk/resources/' |
| function initViewer() { | function initViewer() { | ||||
| viewer = new DC.Viewer('viewer-container') | viewer = new DC.Viewer('viewer-container') | ||||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style: 'img' | |||||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style:'img' | |||||
| }) | }) | ||||
| viewer.addBaseLayer( baseLayer, { | viewer.addBaseLayer( baseLayer, { | ||||
| iconUrl: '../assets/icon/img.png', | iconUrl: '../assets/icon/img.png', | ||||
| name: '地图' | |||||
| name: '影像' | |||||
| }) | |||||
| let baseLayer_img_cva = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style:'img_cva' | |||||
| }) | |||||
| viewer.addBaseLayer( baseLayer_img_cva, { | |||||
| iconUrl: '../assets/icon/img.png', | |||||
| name: '影像 + 标注' | |||||
| }) | }) | ||||
| let baselayer_elc = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE) | let baselayer_elc = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE) |
| <!DOCTYPE html> | |||||
| <html lang="en"> | |||||
| <head> | |||||
| <meta charset="utf-8"> | |||||
| <meta name="viewport" content="width=device-width,initial-scale=1.0"> | |||||
| <title>dc-example</title> | |||||
| <script src='/libs/dc-sdk/dc.min.js'></script> | |||||
| <link href='/libs/dc-sdk/dc.min.css' type='text/css' rel='stylesheet'> | |||||
| <link href='../index.css' type='text/css' rel='stylesheet'> | |||||
| </head> | |||||
| <body> | |||||
| <div id="viewer-container" class="viewer-container"></div> | |||||
| <script> | |||||
| let viewer = undefined | |||||
| function initViewer() { | |||||
| viewer = new DC.Viewer('viewer-container') | |||||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style:'img' | |||||
| }) | |||||
| viewer.addBaseLayer( baseLayer, { | |||||
| iconUrl: '../assets/icon/img.png', | |||||
| name: '影像' | |||||
| }) | |||||
| let baseLayer_img_cva = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style:'img_cva', | |||||
| crs:'WGS84' | |||||
| }) | |||||
| viewer.addBaseLayer( baseLayer_img_cva, { | |||||
| iconUrl: '../assets/icon/img.png', | |||||
| name: '影像 + 标注' | |||||
| }) | |||||
| let baselayer_elc = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| crs:'WGS84' | |||||
| }) | |||||
| viewer.addBaseLayer(baselayer_elc, { | |||||
| iconUrl: '../assets/icon/elec.png', | |||||
| name: '电子' | |||||
| }) | |||||
| let baselayer_ter = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.GOOGLE,{ | |||||
| style: 'ter', | |||||
| crs:'WGS84' | |||||
| }) | |||||
| viewer.addBaseLayer(baselayer_ter, { | |||||
| iconUrl: '../assets/icon/ter.png', | |||||
| name: '地形' | |||||
| }) | |||||
| viewer.zoomToPosition( | |||||
| new DC.Position(105.565571, 31.984708, 15362816, 0, -90) | |||||
| ) | |||||
| } | |||||
| DC.ready({ | |||||
| baseUrl:'../libs/dc-sdk/resources/' | |||||
| }).then(initViewer) | |||||
| </script> | |||||
| </body> | |||||
| </html> |
| <div class="container"> | <div class="container"> | ||||
| <div class="nav"> | <div class="nav"> | ||||
| <div class="banner"> DC-SDK v3.0.0 </div> | |||||
| <div class="banner"> DC-SDK v3.0.1 </div> | |||||
| <div class="example-list-wrapper"> | <div class="example-list-wrapper"> | ||||
| <div id="example-list" class="example-list" data-accordion-group> </div> | <div id="example-list" class="example-list" data-accordion-group> </div> | ||||
| <div class="desc"></div> | <div class="desc"></div> |
| page: 'amap.html', | page: 'amap.html', | ||||
| }, | }, | ||||
| { | { | ||||
| name: '高德地图(偏移纠正)', | |||||
| name: '高德地图(偏移纠正)', | |||||
| page: 'amap_no_offset.html', | page: 'amap_no_offset.html', | ||||
| }, | }, | ||||
| { | { | ||||
| page: 'baidu.html', | page: 'baidu.html', | ||||
| }, | }, | ||||
| { | { | ||||
| name: '百度地图(偏移纠正)', | |||||
| name: '百度地图(偏移纠正)', | |||||
| page: 'baidu_no_offset.html', | page: 'baidu_no_offset.html', | ||||
| }, | }, | ||||
| { | { | ||||
| page: 'geovis.html', | page: 'geovis.html', | ||||
| }, | }, | ||||
| { | { | ||||
| name: '谷歌地图(已被墙)', | |||||
| name: '谷歌地图', | |||||
| page: 'google.html', | page: 'google.html', | ||||
| }, | }, | ||||
| { | |||||
| name: '谷歌地图(偏移纠正)', | |||||
| page: 'google_no_offset.html', | |||||
| }, | |||||
| { | { | ||||
| name: '天地图', | name: '天地图', | ||||
| page: 'tdt.html', | page: 'tdt.html', |
| ], | ], | ||||
| ] | ] | ||||
| class BaiduMercatorProjection { | |||||
| class BD09Projection { | |||||
| constructor() { | constructor() { | ||||
| this.isWgs84 = false | this.isWgs84 = false | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| export default BaiduMercatorProjection | |||||
| export default BD09Projection |
| import { Cesium } from '../../../namespace' | import { Cesium } from '../../../namespace' | ||||
| import ImageryType from '../ImageryType' | import ImageryType from '../ImageryType' | ||||
| import AmapMercatorTilingScheme from '../tiling-scheme/AmapMercatorTilingScheme' | |||||
| import GCJ02TilingScheme from '../tiling-scheme/GCJ02TilingScheme.js' | |||||
| const TILE_URL = { | const TILE_URL = { | ||||
| img: '//webst{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', | img: '//webst{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', | ||||
| ].join('') | ].join('') | ||||
| options['subdomains'] = options.subdomains || ['01', '02', '03', '04'] | options['subdomains'] = options.subdomains || ['01', '02', '03', '04'] | ||||
| if (options.crs === 'WGS84') { | if (options.crs === 'WGS84') { | ||||
| options['tilingScheme'] = new AmapMercatorTilingScheme() | |||||
| options['tilingScheme'] = new GCJ02TilingScheme() | |||||
| } | } | ||||
| super(options) | super(options) | ||||
| } | } |
| import { Cesium } from '../../../namespace' | import { Cesium } from '../../../namespace' | ||||
| import ImageryType from '../ImageryType' | import ImageryType from '../ImageryType' | ||||
| import BaiduMercatorTilingScheme from '../tiling-scheme/BaiduMercatorTilingScheme' | |||||
| import BD09TilingScheme from '../tiling-scheme/BD09TilingScheme.js' | |||||
| const TILE_URL = { | const TILE_URL = { | ||||
| img: '//shangetu{s}.map.bdimg.com/it/u=x={x};y={y};z={z};v=009;type=sate&fm=46', | img: '//shangetu{s}.map.bdimg.com/it/u=x={x};y={y};z={z};v=009;type=sate&fm=46', | ||||
| for (let i = 0; i < 19; i++) { | for (let i = 0; i < 19; i++) { | ||||
| resolutions[i] = 256 * Math.pow(2, 18 - i) | resolutions[i] = 256 * Math.pow(2, 18 - i) | ||||
| } | } | ||||
| options['tilingScheme'] = new BaiduMercatorTilingScheme({ | |||||
| options['tilingScheme'] = new BD09TilingScheme({ | |||||
| resolutions, | resolutions, | ||||
| rectangleSouthwestInMeters: new Cesium.Cartesian2( | rectangleSouthwestInMeters: new Cesium.Cartesian2( | ||||
| -20037726.37, | -20037726.37, |
| import { Cesium } from '../../../namespace' | import { Cesium } from '../../../namespace' | ||||
| import ImageryType from '../ImageryType' | import ImageryType from '../ImageryType' | ||||
| import GCJ02TilingScheme from '../tiling-scheme/GCJ02TilingScheme.js' | |||||
| /** | |||||
| * | |||||
| * 地址:https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s&x={x}&y={y}&z={z} | |||||
| * 底图类型: | |||||
| * m 标准路线图 lyrs=m | |||||
| * r 某种改变的路线图(路线不明显) lyrs=r | |||||
| * s 影像层(卫星图) lyrs=s | |||||
| * y 带标签的卫星图 lyrs=y | |||||
| * h 标签层(路名、地名等) lyrs=h | |||||
| * t 地形图 lyrs=t | |||||
| * p 带标签的地形图 lyrs=p | |||||
| * | |||||
| */ | |||||
| const TILE_URL = { | const TILE_URL = { | ||||
| img: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s&x={x}&y={y}&z={z}', | 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}', | 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}', | 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 Cesium.UrlTemplateImageryProvider { | class GoogleImageryProvider extends Cesium.UrlTemplateImageryProvider { | ||||
| options.protocol || '', | options.protocol || '', | ||||
| TILE_URL[options.style] || TILE_URL['elec'], | TILE_URL[options.style] || TILE_URL['elec'], | ||||
| ].join('') | ].join('') | ||||
| options['subdomains'] = options.subdomains || ['1', '2', '3'] | |||||
| if (options.crs === 'WGS84') { | |||||
| options['tilingScheme'] = new GCJ02TilingScheme() | |||||
| } | |||||
| super(options) | super(options) | ||||
| } | } | ||||
| } | } |
| import { Cesium } from '../../../namespace' | import { Cesium } from '../../../namespace' | ||||
| import { CoordTransform } from '../../transform' | import { CoordTransform } from '../../transform' | ||||
| import BaiduMercatorProjection from '../projection/BaiduMercatorProjection' | |||||
| import BD09Projection from '../projection/BD09Projection' | |||||
| class BaiduMercatorTilingScheme extends Cesium.WebMercatorTilingScheme { | |||||
| class BD09TilingScheme extends Cesium.WebMercatorTilingScheme { | |||||
| constructor(options) { | constructor(options) { | ||||
| super(options) | super(options) | ||||
| let projection = new BaiduMercatorProjection() | |||||
| let projection = new BD09Projection() | |||||
| this._projection.project = function (cartographic, result) { | this._projection.project = function (cartographic, result) { | ||||
| result = result || {} | result = result || {} | ||||
| result = CoordTransform.WGS84ToGCJ02( | result = CoordTransform.WGS84ToGCJ02( | ||||
| * @param y | * @param y | ||||
| * @param level | * @param level | ||||
| * @param result | * @param result | ||||
| * @returns {module:cesium.Rectangle|*} | |||||
| * @returns {Rectangle|*} | |||||
| */ | */ | ||||
| tileXYToNativeRectangle(x, y, level, result) { | tileXYToNativeRectangle(x, y, level, result) { | ||||
| const tileWidth = this.resolutions[level] | const tileWidth = this.resolutions[level] | ||||
| } | } | ||||
| } | } | ||||
| export default BaiduMercatorTilingScheme | |||||
| export default BD09TilingScheme |
| import { Cesium } from '../../../namespace' | import { Cesium } from '../../../namespace' | ||||
| import { CoordTransform } from '../../transform' | import { CoordTransform } from '../../transform' | ||||
| class AmapMercatorTilingScheme extends Cesium.WebMercatorTilingScheme { | |||||
| class GCJ02TilingScheme extends Cesium.WebMercatorTilingScheme { | |||||
| constructor(options) { | constructor(options) { | ||||
| super(options) | super(options) | ||||
| let projection = new Cesium.WebMercatorProjection() | let projection = new Cesium.WebMercatorProjection() | ||||
| } | } | ||||
| } | } | ||||
| export default AmapMercatorTilingScheme | |||||
| export default GCJ02TilingScheme |
| class Measure { | class Measure { | ||||
| constructor(viewer) { | constructor(viewer) { | ||||
| if (!viewer) { | |||||
| if (!viewer) { | |||||
| throw Error('missing viewer param') | throw Error('missing viewer param') | ||||
| } | } | ||||
| this._viewer = viewer | this._viewer = viewer | ||||
| return this | return this | ||||
| } | } | ||||
| /** | /** | ||||
| * | * | ||||
| * @param type | * @param type |