浏览代码

update imagery

tags/3.0.1
cavencj 2 年前
父节点
当前提交
f191c0aed2

+ 0
- 9
examples/baselayer/baidu_no_offset.html 查看文件

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/'

+ 12
- 3
examples/baselayer/google.html 查看文件

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)

+ 63
- 0
examples/baselayer/google_no_offset.html 查看文件

<!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>

+ 1
- 1
examples/index.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>

+ 7
- 3
examples/list.js 查看文件

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',

src/modules/imagery/projection/BaiduMercatorProjection.js → src/modules/imagery/projection/BD09Projection.js 查看文件

], ],
] ]


class BaiduMercatorProjection {
class BD09Projection {
constructor() { constructor() {
this.isWgs84 = false this.isWgs84 = false
} }
} }
} }


export default BaiduMercatorProjection
export default BD09Projection

+ 2
- 2
src/modules/imagery/provider/AmapImageryProvider.js 查看文件



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)
} }

+ 2
- 2
src/modules/imagery/provider/BaiduImageryProvider.js 查看文件



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,

+ 6
- 14
src/modules/imagery/provider/GoogleImageryProvider.js 查看文件



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)
} }
} }

src/modules/imagery/tiling-scheme/BaiduMercatorTilingScheme.js → src/modules/imagery/tiling-scheme/BD09TilingScheme.js 查看文件



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

src/modules/imagery/tiling-scheme/AmapMercatorTilingScheme.js → src/modules/imagery/tiling-scheme/GCJ02TilingScheme.js 查看文件

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

+ 1
- 3
src/modules/measure/Measure.js 查看文件



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

正在加载...
取消
保存