Skip to content

Commit 9ad395c

Browse files
committed
feat(street): use panoramax viewer
1 parent eecd0c2 commit 9ad395c

File tree

2 files changed

+40
-11
lines changed

2 files changed

+40
-11
lines changed

src/components/StreetProject.vue

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script lang="ts">
22
import createInformationPages from '@/utils/createInformationPages'
33
import StreetProjectTask from './StreetProjectTask.vue'
4+
import StreetProjectTaskPanoramax from './StreetProjectTaskPanoramax.vue'
45
import StreetProjectTutorial from '@/components/StreetProjectTutorial.vue'
56
import OptionButtons from './OptionButtons.vue'
67
import ProjectHeader from './ProjectHeader.vue'
@@ -14,6 +15,7 @@ export default defineComponent({
1415
components: {
1516
streetProjectInstructions: StreetProjectInstructions,
1617
streetProjectTask: StreetProjectTask,
18+
streetProjectTaskPanoramax: StreetProjectTaskPanoramax,
1719
streetProjectTutorial: StreetProjectTutorial,
1820
optionButtons: OptionButtons,
1921
projectHeader: ProjectHeader,
@@ -170,7 +172,16 @@ export default defineComponent({
170172
</template>
171173
</project-info>
172174
</project-header>
175+
<street-project-task-panoramax
176+
v-if="project.tileServer?.name == 'panoramax'"
177+
:taskId="taskId"
178+
:endpoint="project.tileServer?.url"
179+
@dataloading="(e) => (isLoading = e)"
180+
@imageError="handleImageError(taskId)"
181+
style="position: relative; height: calc(100vh - 390px)"
182+
/>
173183
<street-project-task
184+
v-else
174185
:taskId="taskId"
175186
@dataloading="(e) => (isLoading = e.loading)"
176187
@imageError="handleImageError(taskId)"

src/components/StreetProjectTaskPanoramax.vue

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ import '@panoramax/web-viewer'
55
66
export default defineComponent({
77
props: {
8+
containerId: {
9+
type: String,
10+
default: 'panoramax',
11+
required: true,
12+
},
813
taskId: { type: String, required: true },
14+
endpoint: { type: String, default: 'https://api.panoramax.xyz/api' },
915
},
1016
data() {
1117
return {
1218
viewer: null as HTMLElement | null,
13-
endpoint: 'https://api.panoramax.xyz/api',
14-
pictureId: '362aba76-f730-49b6-ae04-aebcbfb958e0',
1519
}
1620
},
1721
watch: {
@@ -20,6 +24,24 @@ export default defineComponent({
2024
},
2125
},
2226
methods: {
27+
initialiseViewer() {
28+
this.viewer = this.$refs.viewer as HTMLElement
29+
this.viewer.addEventListener('ready', () => {
30+
this.removeArrows()
31+
})
32+
this.viewer.addEventListener('psv:picture-loading', () => {
33+
this.$emit('dataloading', true)
34+
})
35+
this.viewer.addEventListener('psv:picture-loaded', () => {
36+
this.$emit('dataloading', false)
37+
})
38+
/* TODO
39+
this.viewer.addEventListener('broken', () => {
40+
this.$emit('imageError', this.taskId)
41+
console.log("broken")
42+
})
43+
*/
44+
},
2345
moveViewer(pictureId) {
2446
this.viewer.select(undefined, pictureId, true)
2547
},
@@ -29,26 +51,22 @@ export default defineComponent({
2951
},
3052
},
3153
mounted() {
32-
this.viewer = this.$refs.viewer as HTMLElement
33-
this.viewer.addEventListener('ready', () => {
34-
this.removeArrows()
35-
console.log('Web component viewer ready')
36-
})
54+
this.initialiseViewer()
55+
this.moveViewer(this.taskId)
3756
},
3857
})
3958
</script>
4059

4160
<template>
42-
<div>
61+
<v-container :id="`${containerId}`" class="ma-0 pa-0">
4362
<pnx-photo-viewer
4463
ref="viewer"
4564
:endpoint="endpoint"
46-
:picture="pictureId"
4765
widgets="false"
4866
url-parameters="false"
4967
keyboard-shortcuts="false"
50-
></pnx-photo-viewer>
51-
</div>
68+
/>
69+
</v-container>
5270
</template>
5371

5472
<style scoped></style>

0 commit comments

Comments
 (0)