|
@@ -17,7 +17,21 @@ const ModelTypes = {
|
|
|
7 : {name:'圆周率相机' },//圆周率相机场景
|
|
|
8 : {name:'动画模型'}
|
|
|
}
|
|
|
-let cesAspect , cesImageryProvider
|
|
|
+
|
|
|
+let satellite = true
|
|
|
+let defaultMapProps = [{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传这个值,勿更改
|
|
@@ -784,28 +798,36 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
switchMapType(type){//切换成江门的卫星或标准
|
|
|
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"
|
|
|
+
|
|
|
+ mapProps = [{
|
|
|
+ maximumLevel : type == 'satellite' ? 18 : 19,
|
|
|
+ url: type == 'satellite' ? "//a.map.jms.gd/tile/weixing/{z}/{x}/{y}.png" : "//a.map.jms.gd/tile/gd_xiangtu/{z}/{x}/{y}.png"
|
|
|
+ }]
|
|
|
+
|
|
|
+ if(Potree.settings.showCesium){
|
|
|
+ buildMapFromProp()
|
|
|
}
|
|
|
- cesImageryProvider = new Cesium.UrlTemplateImageryProvider({ //直接用84坐标,不用转高德
|
|
|
- url,
|
|
|
- crossOrigin: 'anonymous',
|
|
|
- minimumLevel: 0,
|
|
|
- maximumLevel,
|
|
|
- tilingScheme: new AmapMercatorTilingScheme(), //修改投影,从84->高德
|
|
|
- })
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ changeMapTile(urls){
|
|
|
+ //'http:/a.xxx.com/{x}/{y}/{z}.png'
|
|
|
+ console.log('changeMapTile',urls)
|
|
|
+
|
|
|
+ mapProps = urls.forEach(e=>{
|
|
|
+ return {
|
|
|
+ maximumLevel : 18,
|
|
|
+ url: e.url
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
if(Potree.settings.showCesium){
|
|
|
- cesiumViewer.imageryLayers.removeAll();
|
|
|
- cesiumViewer.imageryLayers.addImageryProvider(cesImageryProvider);
|
|
|
+ buildMapFromProp()
|
|
|
}
|
|
|
},
|
|
|
|
|
|
|
|
|
+
|
|
|
enableMap(mapArea, latlng) {
|
|
|
|
|
|
if (!viewer.mapViewer) {
|
|
@@ -1571,6 +1593,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
|
|
|
getCurrentSubtitlePixel({width , height}){// 获取当前模型旁白出现的适合位置,传入旁边dom的宽高,返回像素位置
|
|
|
+
|
|
|
+
|
|
|
+ // let startTime = performance.now()
|
|
|
let bound = model.boundingBox
|
|
|
let boundPoints = [
|
|
|
new THREE.Vector3(bound.min.x, bound.min.y, bound.min.z ),
|
|
@@ -1605,6 +1630,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
}else{
|
|
|
x = right.pos.x + margin
|
|
|
}
|
|
|
+ //console.log('获取字幕位置', performance.now() - startTime )
|
|
|
return {x,y}
|
|
|
},
|
|
|
|
|
@@ -2087,7 +2113,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
},
|
|
|
changeCanMove(canMove){
|
|
|
//console.log('changeCanMove', tag.title, canMove)
|
|
|
- tag.dragEnable = canMove
|
|
|
+ tag.dragEnable = canMove
|
|
|
},
|
|
|
|
|
|
getImageCenter(){ //热点在模型的本地坐标
|
|
@@ -2204,6 +2230,22 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
prop.loading = true
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ 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) {
|
|
@@ -2212,8 +2254,6 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
//密钥
|
|
|
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2ZGM2YzY0ZC1kNWE0LTRiYTgtYTkwNS1kYmJiODRjMWUwMmQiLCJpZCI6MjMzMTQ1LCJpYXQiOjE3MjI5OTUwNTB9.niqpkl6xOkQ2KeJjelyDDDydmSGqKXKb5cX2NyxSNAw'
|
|
|
|
|
|
-
|
|
|
-
|
|
|
|
|
|
window.cesiumViewer = new Cesium.Viewer('app', {
|
|
|
useDefaultRenderLoop: true,
|
|
@@ -2234,30 +2274,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: `//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: `//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()
|
|
|
|
|
|
Potree.cesScreenshot = (w,h)=>{
|
|
|
console.log('cesScreenshot',w,h)
|