|
@@ -16,7 +16,49 @@ const ModelTypes = {
|
|
|
6 : {name:'深光mesh',panos4dkk:true, rot90:true},//3dtiles
|
|
|
7 : {name:'圆周率相机' },//圆周率相机场景
|
|
|
}
|
|
|
-let cesAspect , cesImageryProvider
|
|
|
+
|
|
|
+let getMapProp = function(type1, type2){
|
|
|
+ let props
|
|
|
+ if(type2 == 'amap'){
|
|
|
+ props = type1 == 'satellite' ? [
|
|
|
+ {url: `//wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=6&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
+ maximumLevel: 18 ,
|
|
|
+ name:'高德baseLayer'
|
|
|
+ },{
|
|
|
+ url: `//wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
+ maximumLevel: 18,
|
|
|
+ name:'高德textLayer'
|
|
|
+ }] : [
|
|
|
+ {url: `//wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
+ maximumLevel: 19 ,
|
|
|
+ name:'高德baseLayer'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ }else{
|
|
|
+ props = {
|
|
|
+ url: 'https://mt0.google.com/vt/lyrs='+ (type1 == 'satellite'?"y":"m" ) +'&x={x}&y={y}&z={z}',
|
|
|
+ maximumLevel: 22
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return props
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+let defaultMapProps = getMapProp('satellite','amap')
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+[{url: `//wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=${satellite?6:7}&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
+ maximumLevel: satellite?18:19,
|
|
|
+ name:'高德baseLayer'
|
|
|
+},{
|
|
|
+ url: `//wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
+ maximumLevel: 18,
|
|
|
+ name:'高德textLayer'
|
|
|
+}]
|
|
|
+let cesAspect , cesImageryProvider, mapProps = defaultMapProps
|
|
|
|
|
|
|
|
|
const Id_noIntersect = -100 //path绘制在地图上的点,modelId传这个值,勿更改
|
|
@@ -775,31 +817,15 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
|
|
|
},
|
|
|
- /* switchMapType(type) {
|
|
|
- let map = viewer.mapViewer.mapLayer.maps.find(e => e.name == 'map')
|
|
|
- map.switchStyle(type )
|
|
|
- }, */
|
|
|
- switchMapType(type){//切换成江门的卫星或标准
|
|
|
+
|
|
|
+ switchMapType(type1,type2){
|
|
|
if(window.location.href.includes('localhost:7173')/* || Potree.browser.urlHasValue('testMap') */ ) return
|
|
|
- console.log('switchMapType',type)
|
|
|
- let maximumLevel, url
|
|
|
- if(type == 'satellite'){
|
|
|
- maximumLevel = 18
|
|
|
- url = "//a.map.jms.gd/tile/weixing/{z}/{x}/{y}.png"
|
|
|
- }else{
|
|
|
- maximumLevel = 19
|
|
|
- url = "//a.map.jms.gd/tile/gd_xiangtu/{z}/{x}/{y}.png"
|
|
|
- }
|
|
|
- cesImageryProvider = new Cesium.UrlTemplateImageryProvider({ //直接用84坐标,不用转高德
|
|
|
- url,
|
|
|
- crossOrigin: 'anonymous',
|
|
|
- minimumLevel: 0,
|
|
|
- maximumLevel,
|
|
|
- tilingScheme: new AmapMercatorTilingScheme(), //修改投影,从84->高德
|
|
|
- })
|
|
|
+ console.log('switchMapType',type1,type2)
|
|
|
+
|
|
|
+ mapProps = getMapProp(type1,type2)
|
|
|
+
|
|
|
if(Potree.settings.showCesium){
|
|
|
- cesiumViewer.imageryLayers.removeAll();
|
|
|
- cesiumViewer.imageryLayers.addImageryProvider(cesImageryProvider);
|
|
|
+ buildMapFromProp()
|
|
|
}
|
|
|
},
|
|
|
|
|
@@ -1850,8 +1876,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
getImageCenter(){ //热点在模型的本地坐标
|
|
|
if(!tag.parent)return new THREE.Vector3
|
|
|
tag.titleLabel.sprite.update()
|
|
|
+ tag.updateMatrixWorld() //有的不加不对
|
|
|
let pos = tag.onMesh ? tag.position : tag.titleLabel.parent.position.clone().applyMatrix4(tag.matrixWorld).applyMatrix4(tag.root.matrixWorld.clone().invert())
|
|
|
- //console.log(props.title, 'getImageCenter', pos.toArray(), tag.lineLength)
|
|
|
+ console.log(props.title, tag.id, 'getImageCenter', pos.toArray()/* , tag.titleLabel.parent.position.toArray(), */ )
|
|
|
return pos
|
|
|
},
|
|
|
|
|
@@ -1957,6 +1984,22 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
}
|
|
|
|
|
|
+ function buildMapFromProp(){
|
|
|
+ cesiumViewer.imageryLayers.removeAll();
|
|
|
+
|
|
|
+ mapProps.forEach(e=>{
|
|
|
+ let gaoDeImageryProvider = new Cesium.UrlTemplateImageryProvider({
|
|
|
+ url:e.url,
|
|
|
+ minimumLevel: 0,
|
|
|
+ maximumLevel: e.maximumLevel,
|
|
|
+ credit: new Cesium.Credit(e.name),
|
|
|
+ tilingScheme: new AmapMercatorTilingScheme(), //修改投影,从84->高德
|
|
|
+ crossOrigin: 'anonymous',
|
|
|
+ })
|
|
|
+ cesiumViewer.imageryLayers.addImageryProvider(gaoDeImageryProvider);
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
function buildMap(){
|
|
|
if (Potree.settings.showCesium && !window.cesiumViewer) {
|
|
|
|
|
@@ -1985,29 +2028,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
//terrainShadows: Cesium.ShadowMode.DISABLED, //terrain地形 //自带的地图直接用84坐标
|
|
|
});
|
|
|
-
|
|
|
- let satellite = true
|
|
|
- let gaoDeImageryProvider = cesImageryProvider || new Cesium.UrlTemplateImageryProvider({
|
|
|
- url: `http://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=${satellite?6:7}&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
- minimumLevel: 0,
|
|
|
- maximumLevel: satellite?18:19,
|
|
|
- credit: new Cesium.Credit('高德地图'),
|
|
|
- tilingScheme: new AmapMercatorTilingScheme(), //修改投影,从84->高德
|
|
|
- crossOrigin: 'anonymous',
|
|
|
- })
|
|
|
- cesiumViewer.imageryLayers.removeAll();
|
|
|
- cesiumViewer.imageryLayers.addImageryProvider(gaoDeImageryProvider);
|
|
|
-
|
|
|
- //叠一层文字上去
|
|
|
- let gaoDeImageryProvider2 = cesImageryProvider || new Cesium.UrlTemplateImageryProvider({
|
|
|
- url: `http://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}&layer=6&token=YOUR_API_KEY`, //style=6是卫星,7是标准
|
|
|
- minimumLevel: 0,
|
|
|
- maximumLevel: 18,
|
|
|
- credit: new Cesium.Credit('高德地图'),
|
|
|
- tilingScheme: new AmapMercatorTilingScheme(), //修改投影,从84->高德
|
|
|
- crossOrigin: 'anonymous',
|
|
|
- })
|
|
|
- cesiumViewer.imageryLayers.addImageryProvider(gaoDeImageryProvider2);
|
|
|
+ buildMapFromProp()
|
|
|
|
|
|
|
|
|
|
|
@@ -2042,6 +2063,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
return deferred.promise()
|
|
|
|
|
|
}
|
|
|
+ }else{
|
|
|
+ buildMapFromProp()
|
|
|
}
|
|
|
updateMap()
|
|
|
|