forked from barryclark/jekyll-now
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpano3.html
85 lines (73 loc) · 3.04 KB
/
pano3.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width, shrink-to-fit=no">
<meta name="description" Content="가상여행, 파노라마, Panolens, Threejs, WebGL" />
<title>Two places</title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&family=Noto+Serif+KR&family=Oswald&display=swap" rel="stylesheet">
<link rel=stylesheet href="style.css">
<script src="./js/three.js"></script>
<script src="./js/panolens.min.js"></script>
<script src="./js/panocontroller.js"></script>
</head>
<body>
<div id="progress">
<div id="bar"></div>
</div>
<div class="title">
<header>Myeongdong Cathedral</header>
<article id="subtitle">명동대성당</article>
<article>2022.11.13 20:00</article>
</div>
<div id="container"></div>
<script>
var panorama, panorama2, viewer, container, scene, renderer;
var bar, infospot, subtitle;
bar = document.querySelector( '#bar' );
subtitle = document.querySelector( '#subtitle' );
function onProgressUpdate ( event ) {
var percentage = event.progress.loaded/ event.progress.total * 100;
bar.style.width = percentage + "%";
if (percentage >= 100){
bar.classList.add( 'hide' );
setTimeout(function(){
bar.style.width = 0;
}, 1000);
}
}
// set objects' positions
let infoPos1 = getVectorFromAngle(58, 15, 4000);
let infoPos2 = getVectorFromAngle(-14, 0, 4000);
let lookPos1 = getVectorFromAngle(0, 0, 4000);
let lookPos2 = getVectorFromAngle(90, 45, 4000);
var infospotPositions = [infoPos1, infoPos2];
var lookAtPositions = [lookPos1, lookPos2];
container = document.querySelector( '#container' );
//panorama = new PANOLENS.GoogleStreetviewPanorama('8VRQVMxTcxwTvaa7T7jktA');
panorama = new PANOLENS.ImagePanorama( './asset/pano_vr31.jpg' );
panorama.addEventListener( 'progress', onProgressUpdate );
viewer = new PANOLENS.Viewer( { output: 'console', container: container } );
panorama.addEventListener( 'enter-fade-start', function(){
viewer.tweenControlCenter( lookAtPositions[0], 0 );
subtitle.innerHTML = '입구 계단, 명동대성당';
});
//panorama2 = new PANOLENS.GoogleStreetviewPanorama('EoRzuVjoP8ft_wF6A9pyxQ');
panorama2 = new PANOLENS.ImagePanorama( './asset/pano_vr32.jpg' );
panorama2.addEventListener( 'progress', onProgressUpdate );
panorama2.addEventListener( 'enter', function(){
viewer.tweenControlCenter( lookAtPositions[1], 0 );
subtitle.innerHTML = '성당 입구, 명동대성당';
});
panorama.link( panorama2, infospotPositions[0] );
panorama2.link( panorama, infospotPositions[1] );
viewer.add( panorama, panorama2 );
camera = viewer.getCamera();
scene = viewer.getScene();
renderer = viewer.getRenderer();
//var gridHelper = new THREE.GridHelper( 20, 20, '#adff2f', '#ff7f50' );
//scene.add( gridHelper );
viewer.update();
</script>
</body>
</html>