forked from MapComplete/MapComplete
Feature: 360-view, experimenting with photo-sphere-viewer
This commit is contained in:
parent
fb4fbe2be3
commit
4a45c650be
7 changed files with 265 additions and 29 deletions
93
package-lock.json
generated
93
package-lock.json
generated
|
@ -15,6 +15,7 @@
|
||||||
"@comunica/core": "^3.0.1",
|
"@comunica/core": "^3.0.1",
|
||||||
"@comunica/query-sparql": "^3.0.1",
|
"@comunica/query-sparql": "^3.0.1",
|
||||||
"@comunica/query-sparql-link-traversal": "^0.3.0",
|
"@comunica/query-sparql-link-traversal": "^0.3.0",
|
||||||
|
"@photo-sphere-viewer/equirectangular-tiles-adapter": "^5.12.1",
|
||||||
"@rapideditor/location-conflation": "^1.3.0",
|
"@rapideditor/location-conflation": "^1.3.0",
|
||||||
"@rgossiaux/svelte-headlessui": "^1.0.2",
|
"@rgossiaux/svelte-headlessui": "^1.0.2",
|
||||||
"@rgossiaux/svelte-heroicons": "^0.1.2",
|
"@rgossiaux/svelte-heroicons": "^0.1.2",
|
||||||
|
@ -74,6 +75,7 @@
|
||||||
"panzoom": "^9.4.3",
|
"panzoom": "^9.4.3",
|
||||||
"papaparse": "^5.5.2",
|
"papaparse": "^5.5.2",
|
||||||
"pg": "^8.11.3",
|
"pg": "^8.11.3",
|
||||||
|
"photo-sphere-viewer": "^4.8.1",
|
||||||
"pic4carto": "^2.1.15",
|
"pic4carto": "^2.1.15",
|
||||||
"pluscodes": "^2.6.0",
|
"pluscodes": "^2.6.0",
|
||||||
"pmtiles": "^4.2.1",
|
"pmtiles": "^4.2.1",
|
||||||
|
@ -6273,6 +6275,32 @@
|
||||||
"url": "https://opencollective.com/parcel"
|
"url": "https://opencollective.com/parcel"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@photo-sphere-viewer/core": {
|
||||||
|
"version": "5.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.12.1.tgz",
|
||||||
|
"integrity": "sha512-aK+SueXdKOr5FQAMwjxswHaa2OZcpWi4tx5P4fjq1vWEDa8PtdaoSdQaAp3Csmthvd9DlfNDUb6c21fTudzM/w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"three": "^0.173.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@photo-sphere-viewer/core/node_modules/three": {
|
||||||
|
"version": "0.173.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/three/-/three-0.173.0.tgz",
|
||||||
|
"integrity": "sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@photo-sphere-viewer/equirectangular-tiles-adapter": {
|
||||||
|
"version": "5.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.12.1.tgz",
|
||||||
|
"integrity": "sha512-Z9oiPNQwBdkGD1m+bXe0EuuBgdZFzec+d7MKexYgEqzLLukgp1WJ4il+3omMaRP5HAhRVWR5vapVALag+8BmPg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@photo-sphere-viewer/core": "5.12.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@pkgjs/parseargs": {
|
"node_modules/@pkgjs/parseargs": {
|
||||||
"version": "0.11.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||||
|
@ -23230,6 +23258,17 @@
|
||||||
"split2": "^4.1.0"
|
"split2": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/photo-sphere-viewer": {
|
||||||
|
"version": "4.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/photo-sphere-viewer/-/photo-sphere-viewer-4.8.1.tgz",
|
||||||
|
"integrity": "sha512-Yl1KZq1adtrajCOrf8Y79Qi4A35DfEu8atL779YOdA9XHoH2l2+sYovejnZlGgUM0hEbTyenRDoyXSy/MtioYg==",
|
||||||
|
"deprecated": "Use @photo-sphere-viewer/core instead, see https://photo-sphere-viewer.js.org/guide/migration.html",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"three": "^0.147.0",
|
||||||
|
"uevent": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/pic4carto": {
|
"node_modules/pic4carto": {
|
||||||
"version": "2.1.15",
|
"version": "2.1.15",
|
||||||
"license": "SEE LICENSE IN LICENSE.txt",
|
"license": "SEE LICENSE IN LICENSE.txt",
|
||||||
|
@ -26708,6 +26747,12 @@
|
||||||
"node": ">=0.8"
|
"node": ">=0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/three": {
|
||||||
|
"version": "0.147.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/three/-/three-0.147.0.tgz",
|
||||||
|
"integrity": "sha512-LPTOslYQXFkmvceQjFTNnVVli2LaVF6C99Pv34fJypp8NbQLbTlu3KinZ0zURghS5zEehK+VQyvWuPZ/Sm8fzw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/through": {
|
"node_modules/through": {
|
||||||
"version": "2.3.8",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
|
@ -27594,6 +27639,12 @@
|
||||||
"node": ">=4.2.0"
|
"node": ">=4.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/uevent": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uevent/-/uevent-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-48s5LF/c6R1fUmctGib/dWKhZjZLd4aK/85dwVAbwgHNBSO0k0UNp0ZKZpkSbU6633qYhgykYQPakTSuOxZopA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/uglify-js": {
|
"node_modules/uglify-js": {
|
||||||
"version": "3.19.3",
|
"version": "3.19.3",
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
|
||||||
|
@ -34147,6 +34198,29 @@
|
||||||
"version": "2.8.2",
|
"version": "2.8.2",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@photo-sphere-viewer/core": {
|
||||||
|
"version": "5.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.12.1.tgz",
|
||||||
|
"integrity": "sha512-aK+SueXdKOr5FQAMwjxswHaa2OZcpWi4tx5P4fjq1vWEDa8PtdaoSdQaAp3Csmthvd9DlfNDUb6c21fTudzM/w==",
|
||||||
|
"peer": true,
|
||||||
|
"requires": {
|
||||||
|
"three": "^0.173.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"three": {
|
||||||
|
"version": "0.173.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/three/-/three-0.173.0.tgz",
|
||||||
|
"integrity": "sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==",
|
||||||
|
"peer": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@photo-sphere-viewer/equirectangular-tiles-adapter": {
|
||||||
|
"version": "5.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.12.1.tgz",
|
||||||
|
"integrity": "sha512-Z9oiPNQwBdkGD1m+bXe0EuuBgdZFzec+d7MKexYgEqzLLukgp1WJ4il+3omMaRP5HAhRVWR5vapVALag+8BmPg==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"@pkgjs/parseargs": {
|
"@pkgjs/parseargs": {
|
||||||
"version": "0.11.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||||
|
@ -46355,6 +46429,15 @@
|
||||||
"split2": "^4.1.0"
|
"split2": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"photo-sphere-viewer": {
|
||||||
|
"version": "4.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/photo-sphere-viewer/-/photo-sphere-viewer-4.8.1.tgz",
|
||||||
|
"integrity": "sha512-Yl1KZq1adtrajCOrf8Y79Qi4A35DfEu8atL779YOdA9XHoH2l2+sYovejnZlGgUM0hEbTyenRDoyXSy/MtioYg==",
|
||||||
|
"requires": {
|
||||||
|
"three": "^0.147.0",
|
||||||
|
"uevent": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pic4carto": {
|
"pic4carto": {
|
||||||
"version": "2.1.15",
|
"version": "2.1.15",
|
||||||
"requires": {
|
"requires": {
|
||||||
|
@ -48749,6 +48832,11 @@
|
||||||
"thenify": ">= 3.1.0 < 4"
|
"thenify": ">= 3.1.0 < 4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"three": {
|
||||||
|
"version": "0.147.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/three/-/three-0.147.0.tgz",
|
||||||
|
"integrity": "sha512-LPTOslYQXFkmvceQjFTNnVVli2LaVF6C99Pv34fJypp8NbQLbTlu3KinZ0zURghS5zEehK+VQyvWuPZ/Sm8fzw=="
|
||||||
|
},
|
||||||
"through": {
|
"through": {
|
||||||
"version": "2.3.8",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
|
@ -49436,6 +49524,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||||
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
|
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
|
||||||
},
|
},
|
||||||
|
"uevent": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uevent/-/uevent-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-48s5LF/c6R1fUmctGib/dWKhZjZLd4aK/85dwVAbwgHNBSO0k0UNp0ZKZpkSbU6633qYhgykYQPakTSuOxZopA=="
|
||||||
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
"version": "3.19.3",
|
"version": "3.19.3",
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
|
||||||
|
|
|
@ -177,6 +177,7 @@
|
||||||
"@comunica/core": "^3.0.1",
|
"@comunica/core": "^3.0.1",
|
||||||
"@comunica/query-sparql": "^3.0.1",
|
"@comunica/query-sparql": "^3.0.1",
|
||||||
"@comunica/query-sparql-link-traversal": "^0.3.0",
|
"@comunica/query-sparql-link-traversal": "^0.3.0",
|
||||||
|
"@photo-sphere-viewer/equirectangular-tiles-adapter": "^5.12.1",
|
||||||
"@rapideditor/location-conflation": "^1.3.0",
|
"@rapideditor/location-conflation": "^1.3.0",
|
||||||
"@rgossiaux/svelte-headlessui": "^1.0.2",
|
"@rgossiaux/svelte-headlessui": "^1.0.2",
|
||||||
"@rgossiaux/svelte-heroicons": "^0.1.2",
|
"@rgossiaux/svelte-heroicons": "^0.1.2",
|
||||||
|
@ -236,6 +237,7 @@
|
||||||
"panzoom": "^9.4.3",
|
"panzoom": "^9.4.3",
|
||||||
"papaparse": "^5.5.2",
|
"papaparse": "^5.5.2",
|
||||||
"pg": "^8.11.3",
|
"pg": "^8.11.3",
|
||||||
|
"photo-sphere-viewer": "^4.8.1",
|
||||||
"pic4carto": "^2.1.15",
|
"pic4carto": "^2.1.15",
|
||||||
"pluscodes": "^2.6.0",
|
"pluscodes": "^2.6.0",
|
||||||
"pmtiles": "^4.2.1",
|
"pmtiles": "^4.2.1",
|
||||||
|
|
BIN
public/assets/loader_base.jpg
Normal file
BIN
public/assets/loader_base.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 145 KiB |
|
@ -325,7 +325,7 @@ class MapillaryFetcher implements ImageFetcher {
|
||||||
private readonly end_captured_at?: Date
|
private readonly end_captured_at?: Date
|
||||||
|
|
||||||
constructor(options?: {
|
constructor(options?: {
|
||||||
panoramas: undefined | "only" | "no"
|
panoramas?: undefined | "only" | "no"
|
||||||
max_images?: 100 | number
|
max_images?: 100 | number
|
||||||
start_captured_at?: Date
|
start_captured_at?: Date
|
||||||
end_captured_at?: Date
|
end_captured_at?: Date
|
||||||
|
@ -411,7 +411,6 @@ export class CombinedFetcher {
|
||||||
new ImagesFromPanoramaxFetcher(),
|
new ImagesFromPanoramaxFetcher(),
|
||||||
new ImagesFromPanoramaxFetcher(Constants.panoramax.url),
|
new ImagesFromPanoramaxFetcher(Constants.panoramax.url),
|
||||||
new MapillaryFetcher({
|
new MapillaryFetcher({
|
||||||
panoramas: "no",
|
|
||||||
max_images: 25,
|
max_images: 25,
|
||||||
start_captured_at: maxage,
|
start_captured_at: maxage,
|
||||||
}),
|
}),
|
||||||
|
|
54
src/UI/Image/photoAdapter.ts
Normal file
54
src/UI/Image/photoAdapter.ts
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
import {
|
||||||
|
EquirectangularTilesAdapter,
|
||||||
|
EquirectangularTilesAdapterConfig
|
||||||
|
} from "@photo-sphere-viewer/equirectangular-tiles-adapter"
|
||||||
|
|
||||||
|
export class PhotoAdapter extends EquirectangularTilesAdapter {
|
||||||
|
// This code was shamelessly stolen from https://gitlab.com/panoramax/clients/web-viewer/-/blob/develop/src/utils/PhotoAdapter.js
|
||||||
|
// MIT-license; thank you adrien!
|
||||||
|
|
||||||
|
private readonly _shouldGoFast: () => boolean
|
||||||
|
|
||||||
|
constructor(viewer, config?: EquirectangularTilesAdapterConfig & { shouldGoFast?: () => boolean }) {
|
||||||
|
super(viewer, config)
|
||||||
|
this._shouldGoFast = config?.shouldGoFast ?? (() => true)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override to skip loading SD images according to shouldGoFast option.
|
||||||
|
*/
|
||||||
|
public async loadTexture(panorama, loader) {
|
||||||
|
if (!panorama.origBaseUrl) {
|
||||||
|
panorama.origBaseUrl = panorama.baseUrl
|
||||||
|
} else {
|
||||||
|
panorama.baseUrl = panorama.origBaseUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fast mode + thumbnail available + no HD image loaded yet + flat picture
|
||||||
|
if (
|
||||||
|
this._shouldGoFast()
|
||||||
|
&& panorama.thumbUrl
|
||||||
|
&& !panorama.hdLoaded
|
||||||
|
&& panorama.rows == 1
|
||||||
|
) {
|
||||||
|
panorama.baseUrl = panorama.thumbUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
let data = await super.loadTexture(panorama, loader)
|
||||||
|
if (panorama.baseUrl === panorama.origBaseUrl) {
|
||||||
|
panorama.hdLoaded = true
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override to skip loading tiles according to shouldGoFast option.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
private __loadTiles(tiles) {
|
||||||
|
if (!this._shouldGoFast()) {
|
||||||
|
super.__loadTiles(tiles)
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
|
@ -1,34 +1,113 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { GeoLocationState } from "../Logic/State/GeoLocationState"
|
|
||||||
|
|
||||||
let origlog = console.log
|
import { onMount } from "svelte"
|
||||||
|
|
||||||
let logs: string[] = []
|
export let imageInfo
|
||||||
|
// Tiles of the panorama, not geotiles
|
||||||
|
let tilemeta = imageInfo?.asset_templates?.tiles_webp || imageInfo?.asset_templates?.tiles
|
||||||
|
|
||||||
function log(...items) {
|
import "@photo-sphere-viewer/core/index.css"
|
||||||
origlog(...items)
|
// import "@photo-sphere-viewer/virtual-tour-plugin/index.css"
|
||||||
logs.push(items.join(" "))
|
// import "@photo-sphere-viewertileUrl/gallery-plugin/index.css"
|
||||||
|
// import "@photo-sphere-viewer/markers-plugin/index.css"
|
||||||
|
|
||||||
|
|
||||||
|
import { AbstractAdapter, Viewer as PSViewer } from "photo-sphere-viewer"
|
||||||
|
import { PhotoAdapter } from "./Image/photoAdapter"
|
||||||
|
|
||||||
|
export const PSV_DEFAULT_ZOOM = 30
|
||||||
|
export const PSV_ANIM_DURATION = 250
|
||||||
|
export const PIC_MAX_STAY_DURATION = 3000
|
||||||
|
|
||||||
|
const BASE_PANORAMA = {
|
||||||
|
baseUrl: "./assets/loader_base.jpg",
|
||||||
|
width: 1280,
|
||||||
|
cols: 2,
|
||||||
|
rows: 1,
|
||||||
|
tileUrl: () => null
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log = log
|
|
||||||
console.error = (...items) => log("ERR: ", ...items)
|
|
||||||
console.warn = (...items) => log("WARN: ", ...items)
|
|
||||||
|
|
||||||
const st = new GeoLocationState()
|
let container: HTMLElement
|
||||||
const av = st.gpsAvailable
|
|
||||||
const loc = st.currentGPSLocation
|
let isSmall = () => container?.offsetWidth < 576
|
||||||
const permission = st.permission
|
let shouldGoFast = () => true
|
||||||
|
|
||||||
|
function constructPanoramaInfo() {
|
||||||
|
const f = imageInfo
|
||||||
|
|
||||||
|
const hdUrl = (Object.values(f.assets).find(a => a?.roles?.includes("data")) || {}).href
|
||||||
|
const matrix = f?.properties?.["tiles:tile_matrix_sets"]?.geovisio
|
||||||
|
const baseUrlWebp = Object.values(f.assets).find(a => a.roles?.includes("visual") && a.type === "image/webp")
|
||||||
|
const baseUrlJpeg = Object.values(f.assets).find(a => a.roles?.includes("visual") && a.type === "image/jpeg")
|
||||||
|
const baseUrl = (baseUrlWebp || baseUrlJpeg).href
|
||||||
|
const thumbUrl = (Object.values(f.assets).find(a => a.roles?.includes("thumbnail") && a.type === "image/jpeg"))?.href
|
||||||
|
|
||||||
|
let panorama = {
|
||||||
|
baseUrl,
|
||||||
|
origBaseUrl: baseUrl,
|
||||||
|
basePanoData: (img) => ({
|
||||||
|
fullWidth: img.width,
|
||||||
|
fullHeight: img.height
|
||||||
|
}),
|
||||||
|
hdUrl,
|
||||||
|
thumbUrl,
|
||||||
|
cols: matrix && matrix.tileMatrix[0].matrixWidth,
|
||||||
|
rows: matrix && matrix.tileMatrix[0].matrixHeight,
|
||||||
|
width: matrix && (matrix.tileMatrix[0].matrixWidth * matrix.tileMatrix[0].tileWidth),
|
||||||
|
tileUrl: matrix && ((col, row) => tilemeta.href.replace(/\{TileCol}/g, col).replace(/\{TileRow}/g, row))
|
||||||
|
}
|
||||||
|
return panorama
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PSViewer["useNewAnglesOrder"] = true
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
const viewer = new PSViewer({
|
||||||
|
container,
|
||||||
|
|
||||||
|
panorama: BASE_PANORAMA.baseUrl,
|
||||||
|
|
||||||
|
adapter: [{ PhotoAdapter, prototype: AbstractAdapter }
|
||||||
|
, {
|
||||||
|
showErrorTile: false,
|
||||||
|
baseBlur: false,
|
||||||
|
resolution: isSmall() ? 32 : 64
|
||||||
|
// shouldGoFast
|
||||||
|
}],
|
||||||
|
|
||||||
|
//withCredentials: parent._options?.fetchOptions?.credentials == "include",
|
||||||
|
//requestHeaders: parent._options?.fetchOptions?.headers,
|
||||||
|
//lang: parent._t.psv,
|
||||||
|
minFov: 5,
|
||||||
|
loadingTxt: " ",
|
||||||
|
navbar: null
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const panorama = constructPanoramaInfo()
|
||||||
|
console.log(panorama, container)
|
||||||
|
|
||||||
|
viewer.setOptions({
|
||||||
|
adapter: [PhotoAdapter, {
|
||||||
|
showErrorTile: false,
|
||||||
|
baseBlur: false,
|
||||||
|
resolution: isSmall() ? 32 : 64
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
viewer.setPanorama(panorama.hdUrl, {
|
||||||
|
zoom: 0, longitude: 45, latitude: -45
|
||||||
|
})
|
||||||
|
|
||||||
|
window.setTimeout(() => {
|
||||||
|
console.log(viewer.getPosition())
|
||||||
|
}, 2000)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<button on:click={() => st.requestPermission()}>Get geolocation</button>
|
|
||||||
Permission:
|
<div bind:this={container} class="h-screen w-screen"></div>
|
||||||
<code>{$permission}</code>
|
|
||||||
Available:
|
|
||||||
<code>{$av}</code>
|
|
||||||
Location:
|
|
||||||
<code>{JSON.stringify($loc)}</code>
|
|
||||||
<ol>
|
|
||||||
{#each logs as log}
|
|
||||||
<li>{log}</li>
|
|
||||||
{/each}
|
|
||||||
</ol>
|
|
||||||
|
|
13
src/test.ts
13
src/test.ts
|
@ -1,4 +1,13 @@
|
||||||
import Test from "./UI/Test.svelte"
|
import Test from "./UI/Test.svelte"
|
||||||
import { OsmConnection } from "./Logic/Osm/OsmConnection"
|
import { ImageData, PanoramaxXYZ } from "panoramax-js"
|
||||||
|
|
||||||
|
const target = document.getElementById("maindiv")
|
||||||
|
target.innerHTML = ""
|
||||||
|
let img = "https://panoramax-storage-public-fast.s3.gra.perf.cloud.ovh.net/main-pictures/d2/8c/ba/cf/c807-4dbf-b8c8-b1c3aa89182d.jpg"
|
||||||
|
let imgId = "d28cbacf-c807-4dbf-b8c8-b1c3aa89182d"
|
||||||
|
let panoramax = new PanoramaxXYZ()
|
||||||
|
panoramax.imageInfo(imgId).then((imageInfo: ImageData) => {
|
||||||
|
console.log("IMG INFO: ", imageInfo)
|
||||||
|
new Test({ target, props: { imageInfo } })
|
||||||
|
})
|
||||||
|
|
||||||
new OsmConnection().interact("user/details.json").then((r) => console.log(">>>", r))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue