Jaha då var jul och nyår över och de flesta av oss är väl tillbaka i normala rutiner igen.
Vad har ni gjort under ledigheten? Varit med familj och vänner utgår jag från, men mer då?
Själv har jag haft så många påbörjade projekt att jobba med, så jag hade kunnat fylla minst tre gånger så mycket ledig tid och ändå inte blivit färdig.
Vad är det då för projekt jag hållit på med. En del foto och filmprojekt har det blivit, men det kan vi lämna här och nu.
Jag har sedan börjat titta på panoramabilder och hur man kan skapa dessa så snabbt och enkelt som möjligt, utan att det för den skull blir dåligt. Och nej, en panorama app i telefonen duger inte.
Det blev en lång process med massor av experiment och 3D utskrifter. Resultatet blev en ”panoramarobot” som när den är helt klar tar de bilder som behövs för ett helt sfäriskt panorama på ungefär en minut. Bilderna skall sedan bearbetas, och detta har jag också skapat en process för så att det blir riktigt bra panoramabilder med drygt 50 megapixels upplösning. Jag har sedan tidigare en större mycket mera avancerad ”robot” som kan ta ännu mycket bättre bilder och med högre upplösning (gigapixel), men den har jag inte byggt själv.
Är du nyfiken på roboten jag byggt så finns en tidig prototyp på ”Thingiverse” och jag gjorde även en film på YouTube.
Den färdiga roboten har mindre elektronik och färre gummiband… Dessutom eftersom den är lättare så ”svajjar” den mycket mindre.
När jag nu kan skapa såväl ”ekvirektangulära” (standard 360×180) som ”stereografiska” (se bild nedan) panoraman, så blev nästa steg att se vad man kan göra sedan.
Jag har tidigare använt lite olika javaskript för att visa panoraman på webbsidor, vilket fungerat bra även om det funnits en del problem och nackdelar.
Nu råkade jag på Pannellum.org som är öppen källkod för en panoramavisare i HTML5, vilket lät intressant att titta närmare på. En skillnad som jag gillar med pannellum jämfört med andra javaskript är navigeringen och panoreringen inne i panoramat (jämför PTviewer här). Det finns dessutom väldigt få javaskript för panoramavisning som är fria/öppen källkod.
I praktiken så är all nödvändig kod för panoramat inbakad i en html-fil och konfiguration görs antingen via URL-strängen eller en JSON-fil.
För att visa enkla panoraman så görs det enklast via URL-strängen (exempel).
Men det går som sagt att skapa ganska komplicerade rundturer med skräddarsydda JSON skript (exempel). Dessa rundturer skriver man koden till manuellt, vilket kan bli nog så krångligt inte minst när man skall placera ut alla hyperlänkar och info-symboler. Därför så skapade jag ett skriptprogram och lite metoder för att även detta skulle kunna göras smidigt.
Ett problem med HTML5 och Pannellum är att man måste vara lite försiktig med upplösningen i bilderna, då mobila klienter inte kan hantera bilder större än 4096 pixlar. Desktop klienter brukar klara minst 8192 pixlar, och några klienter med bra grafikhantering ännu större.
Mina bilder i exemplen ovan är 5000 pixlar, vilket innebär att om du använder en mobil klient, så kommer du inte att kunna se några panoraman, sorry! Jag hade redan skapat och skalat ned bilderna till 5000 pixlar, när jag fick reda på begränsningen för mobila klienter. Om du vill kan du testa samma panorama i olika upplösningar, inklusive för mobila klienter genom att klicka här. Dessutom så är den en skillnad mellan Android och iOS, som man också måste planera för.
Det går att komma runt det här med upplösning genom att använda en variant av ”tiles”, men detta har jag inte tittat närmare på än.
En annan begränsning är att några funktioner kräver en modern webbläsare för att exempelvis kunna köras i helskärmsläge. Dessutom så måste alla filer läsas från en webbserver och inte från en lokal, eller delad katalog… (säkerhetskrav).
Vad är då kopplingen till GIS?
Jo, det går ju att skapa en webbkarta, med exempelvis Leaflet eller OpenLayers och där lägga ut klickbara punkter som öppnar dessa panoraman. Kombinerar man exempelvis med mitt exempel på ”Story Map” så går det att bygga upp väldigt interaktiva rundturer i en mängd olika syften.
Allt som krävs är öppen källkod, lite javaskript, JSON, HTML5 och så förstås en panoramarobot…
Vad jag gjorde? Jag påbörjade ett litet projekt som gick ut på att skapa kml-filer utifrån de geotaggade bilderna jag tagit med min telefon. Nu ser det ut att fungera och det är tillgängligt för nedladdning på http://trixon.se/projects/java/toolbox/photokml/.