Java Web Start
Den virtuelle globusen er normalt startet som en Java Web Start (JWS)
applikasjon. JWS applikasjoner startes ved å aktivere en JNLP
fil. For en beskrivelse av JWS og JNLP se her.
Serverprogrammet VirtualGlobeStarter
Globeserveren har et serverprogram som automatisk genererer JNLP filer
og html sider for sluttbrukerne. Programmet finnes på
http://www.virtual-globe.info/VirtualGlobeStarter.php. Eksempler på bruk
av dette finnes over alle Globe sidene. VirtualGlobeStarter
kommandoer genereres (og legges på utklippstavle) når en bruker velger
"Kopier peker for dette utkikkspunkt".
Argumenter til VirtualGlobeStarter:
- viewpoint
- Kommaseparert liste over posisjon og retning for start øyepunkt.
- lengdegrad
- breddegrad
- begge i desimalgrader, positiv retning nord og østover
- høyde
- meter over havet
- kompassretning
- null mot nord, positiv retning mot høyre
- høydevinkel
- null er horisontalt, positiv retning oppover
- lookat
- Alternativ til "viewpoint", spesifiser et punkt på bakken som vi skal "se på". Argumentverdi er en kommaseparert liste:
- lengdegrad
- breddegrad
- begge i desimalgrader, positiv retning nord og østover
- stopp avstand
- øyepunktet stanser på denne avstand fra punktet vi skal se på
- dataset
- URL til en VGML fil (see under).
- name
- Navn på dette utkikkspunktet for bruk i listen i Verktøy/utkikkspunkter.
- libs
- Komma separert liste av ekstrabiblioteker. Foreløbig er bare
'Xj3D' brukt, den er nødvendig for 3D objekter og VRML lasting.
- request
- Type av forespørsel:
- start
- lag en Java Web
Start JNLP fil som starter den Virtuelle Globen. Hvis det ikke er noe
request argument så er dette standard.
- page
- lag en
informasjons side som kan sjekke om brukeren har Java installert og om
nødvendig hjelper med nedlasting. Den vil også beskrive utkikkspunktet
og gir tips for nye brukere.
- download
- Laster ned og eventuelt
installerer Java, brukes bare internt.
Eksempel: http://www.virtual-globe.info/VirtualGlobeStarter.php?name=Europe&request=page&dataset=http://www.virtual-globe.info/globe.vgml&viewpoint=4.787607927703958,27.52509436526137,3178271.6469249073,0.39637688320507086,-60.09160309417106
Eksempel på bruk av egendefinert lokal "dataset" fil:
http://www.virtual-globe.info/VirtualGlobeStarter.php?dataset=file://localhost/C:/Documents%20and%20Settings/raa/Desktop/globe.vgml.
For at denen skal virke så må du først lage din egen VGML fil som
beskrevet i neste kapittel. VGML filen kan lagres på din egen
webtjener eller på din egen klientmaskin. Det eneste kravet er at den
må være lesbar fra Globe klientprogrammet.
Datasetkonfigurasjonsfil
Dataene er konfigurert i en Virtul Globe Markup Language (VGML)
fil. VGML er basert på XML og de som ønsker å skrive sin egen
konfigurasjon bør være kjent med dette. Lærebøker er å få kjøpt i
bokhandelen og opplæringssider finnes på internet. Konfigurasjonsfilen
beskriver hvilke data som skal inngå i globen, og enkelte
standardverdier for disse. Brukerne kan også gjøre enkelte
innstillinger ved å gå inn i menyene til venstre for 3D vinduet.
Som et eksempel på en enkel VGML fil last ned og lagre: http://www.virtual-globe.info/globe.vgml.
Denne kan redigeres i notepad eller et annet enkelt
tekstredigeringsprogram og lagres for å prøve ut egne
datakonfigurasjoner.
Alt VGML innhold er pakket inn i et <vgml> element og hovedformen på VGML fila er som dette:
<?xml version="1.0" encoding="ISO-8859-1"?>
<vgml>
...
</vgml>
der "..." er innholdet i fila.
VGML elementer
I det følgende beskrives de XML elementer som kan finnes i en VGML
fil. Merk at i XML (i motsetning til HTML) så er det forskjell på
store og små bokstaver!
De fleste elementene her kan ta følgende standard attributter:
- title
- Tittel som vises i brukergrensesnittet.
- base-url
- Basis URL for barn av denne verden. Relative URLer i barna bygger på denne.
Dette er rot elementet i en datakonfigurasjonsfil.
Foreldre
Ingen, er alltid rotelement.
Barn
Atributter
Ingen
Beskriver en "verden".
Foreldre
Barn
Attributter
Kun standardattributter. Her vil vi normalt sette base-url.
Eksempel
Dette er en komplett VGML fil med høyder og teksturlag.
<?xml version="1.0" encoding="ISO-8859-1"?>
<vgml>
<universe>
<world base-url="http://www.virtual-globe.info">
<globe-surface>
<elevations href="srtm30plus.fcgi"/>
<layered-pyramid-coverage href="textures.fcgi">
<wms-texture-set
wms-url="http://onearth.jpl.nasa.gov/wms.cgi?FORMAT=image/jpeg">
<layer name="BMNG" min-pix-size="500" enabled="true"/>
</wms-texture-set>
</layered-pyramid-coverage>
</globe-surface>
</world>
</universe>
</vgml>
En globus overflate. Foreløbig kan den ha ett høydedataset
(<elevations>), ett tekstur/kart dataset (enten
<layered-pyramid-coverage> eller
<simple-pyramid-coverage>) og flere 3D objekt dataset
(<feature-set>).
Foreldre
Barn
Attributter
Ingen
Høydedataset for en globe flate.
Foreldre
Barn
Ingen
Attributter
- href
- URL til høydeserveren
En enkel ettlags testurpyramide. Bildene kan være tilgjengelige som
filer på en vanlig web server, uten dedikerte serverprogrammer. Eller
den kan hente teksturene fra en WMS via wms proxy'en. Dette
forutsetter at WMS tjeneren støtter koordinatsystem WGS84/geografiske
koordinater (EPSG:4326) og WMS versjon "1.1.0".
I de aller fleste tilfelle vil det være bedre å bruke <layered-pyramid-coverage>.
Foreldre
Barn
Ingen
Attributter
- href
- URL til roten av teksturpyramiden eller WMS proxy serveren.
- wms-host
- Adresse til WMS tjeneren
- wms-command
- Kommando til WMS tjeneren (som i <wms-texture-set>)
- wms-layers
- Kommaseparert liste av WMS lag (det er her ikke mulig for brukeren å slå av-og-på lag)
- wms-styles
- Tilsvarende liste av WMS styles
Flerlags tekstur / kart data for en globeflate. Lagene blir komponert
i den rekkefølge de står i listen, med den øverste øverst.
Foreldre
Barn
Attributter
- href
- URL til teksturserveren
Eksempel
Teksturspesifikasjon som kan legge veier og jernbaner fra Statens Kartverk over satelittbilder fra NASA.
<layered-pyramid-coverage href="textures.fcgi">
<wms-texture-set
wms-url="http://basiswms.statkart.no/wmsconnector/com.esri.wsit.WMSServlet/Topografisk_Norgeskart_wms?TRANSPARENT=true&SRS=EPSG:32633">
<layer name="Jernbane"
bbox="4, 57.5, 32, 72"
max-pix-size="200"
min-pix-size="3"
enabled="false"/>
<layer name="Veg"
bbox="4, 57.5, 32, 72"
max-pix-size="200"
min-pix-size="3"
enabled="false"/>
</wms-texture-set>
<wms-texture-set
wms-url="http://onearth.jpl.nasa.gov/wms.cgi?FORMAT=image/jpeg">
<layer name="global_mosaic" min-pix-size="15" enabled="true"/>
<layer name="modis" min-pix-size="500" enabled="true"/>
</wms-texture-set>
</layered-pyramid-coverage>
En pakke av lag hentet fra en Web Map Service.
Foreldre
Barn
Attributter
- transparency
- Gjennomsiktighet, verdi mellom 0 (ugjennomsiktig (default)) og 1 (helt gjennomsiktig).
Dette kan med fordel brukes på flatedekkende lag for å gjøre det mulig å "se igjennom"
til underliggende lag. F.eks for å kunne se ortofoto gjennom et arealplankart.
- wms-url
- Delvis url til WMS tjener. (f.eks. "http://basiswms.statkart.no/wmsconnector/com.esri.wsit.WMSServlet/Topografisk_Norgeskart_wms?TRANSPARENT=true&SRS=EPSG:32633"). Den må ikke inneholde WMS argumentene BBOX, HEIGHT, WIDTH fordi disse legges til av programmet. URL argument skilletegnet & er et spesialtegn i xml og må skrives som &.
- renew
- Tidspunkt i ISO 8601 format for nye WMS data. renew="2006-10-12T13:25+01:00" betyr at det er kommet nye data fra WMS tjeneren og cachede data eldre enn 12. oktober 2006, kl 13:25 norsk standardtid skal forkastes. For å angi norsk sommertid brukes istedet tidssonebetengelsen +02:00.
WMS argumenter som med fordel kan spesifiseres:
- VERSION
- Versjon på WMS tjeneren. Standard er "1.1.0". Hvis WMS'em kun
forstår forespørsler av versjon 1.0.0 skal det spesifiseres: WMTVER=1.0.0&REQUEST=map
- FORMAT
- Bildeformat, default er FORMAT=image/png
- TRANSPARENT
- "true" hvis denne WMS tjeneren skal forsøke å lage
gjennomsiktige teksturer (bør være "true" for alle wms set unntatt det
nederste bakgrunnslaget). Det må samtidig spesifiseres et bildeformat som kan håndtere gjennomsiktige verdier, f.eks png.
- SRS
- Spatial reference system (koordinatsystem) som WMS'en kan levere data på,
normalt spesifisert med en "EPSG" kode (f.eks "EPSG:32633").
Default er WGS84, geografiske koordinater (EPSG:4326).
- BGCOLOR
- Bakgrunnsfarge. Hvis denne verdien er satt så vil alle pixler med denne
fargen bli regnet som gjennomsiktige. Dette gjør det mulig å håndtere gjennomsikitghet med
bildeformater som normalt ikke støtter dette (jpeg).
Et WMS lag, må samsvare med et lag på WMS tjeneren. Attributtene bbox,
max-pix-size og min-pix-size gjør det enklere for programmet å unngå
unødvendige serverforespørsler for områder utenfor der det finnes
data.
Foreldre
Barn
Ingen
Attributter
- title
- Tittel i brukergrensesnittet. Om den ikke er satt brukes istedet name verdien.
- name
- Navn på WMS laget
- bbox
- Bounding box, kommaseparert liste av geografiske
koordinater (desimalgrader) som omkranser gyldige data i
laget. Rekkefølge: min-lengde, min-bredde, max-lengde, max-bredde.
- max-pix-size
- Største pixelstørrelse i meter i terrengmålestokk
- min-pix-size
- Minste pixelstørrelse i meter i terrengmålestokk.
- enabled
- "true"/"false" er laget aktivert eller ikke (brukeren kan overstyre dette i datamenyen).
- renew
- Tidspunkt i ISO 8601 format for nye WMS data. renew="2006-10-12T13:25+01:00" betyr at det er kommet nye data fra WMS tjeneren og cachede data der dette laget inngår som er eldre enn 12. oktober 2006, kl 13:25 norsk standardtid skal forkastes. For å angi norsk sommertid brukes istedet tidssonebetengelsen +02:00.
Ett lag hentet fra en pyramide av teksturbilder som er lagret på samme
maskin som teksturserveren. Attributtene bbox, max-pix-size og
min-pix-size gjør det enklere for programmet å unngå unødvendige
serverforespørsler for områder utenfor der det finnes data.
Foreldre
Barn
Ingen
Attributter
- title
- Tittel i brukergrensesnittet. Om den ikke er satt brukes istedet path verdien.
- transparency
- Gjennomsiktighet, verdi mellom 0 (ugjennomsiktig (default)) og 1 (helt gjennomsiktig).
Dette kan med fordel brukes på flatedekkende lag for å gjøre det mulig å "se igjennom"
til underliggende lag. F.eks for å kunne se ortofoto gjennom et arealplankart.
- path
- Plassering av bildene relativt serverens interne bildekatalog.
- bbox
- Bounding box, kommaseparert liste av geografiske
koordinater (desimalgrader) som omkranser gyldige data i
laget. Rekkefølge: min-lengde, min-bredde, max-lengde, max-bredde.
- max-pix-size
- Største pixelstørrelse i meter i terrengmålestokk
- min-pix-size
- Minste pixelstørrelse i meter i terrengmålestokk.
- enabled
- "true"/"false" er laget aktivert eller ikke (brukeren kan overstyre dette i datamenyen).
Rot i et 3D objekthierarki.
Foreldre
Barn
Attributter
Kun standard attributter.
Eksempel
Dette feature setet inneholder et landemerke (tower.wrl) som vises så
snart detaljer på 50m størrelse blir synlige. Resten av bebyggelsen
håndteres av en LOD gruppe som gjør at den enten vises med objektet
"box-city.wrl" som man kan tenke seg er en forenklet boks
representasjon av bebyggelsen, eller en mere detaljert spesifikasjon
som finnes i "detailed-city.vgml".
<feature-set>
<feature3D-group base-url="http://www.virtual-globe.info/city/">
<feature3D-point detail-size="50"
lon="9.065781861126997" lat="63.29879834747761"
h="23.5" vert-ref="sea-level">
<vrml-model href="tower.wrl"/>
<info>
<![CDATA[
Det berømte
<A HREF="http://www.tower.com">Tårnet</A>.
]]>
</info>
</feature3D-point>
<feature3D-lod>
<feature3D-external href="detailed-city.vgml" detail-size="1"
bbox="8.832, 63.206, 0, 9.087, 63.446, 300"/>
<feature3D-point detail-size="10"
lon="9.065" lat="63.256" h="3.3"
azimuth="0.60683" vert-ref="sea-level">
<vrml-model href="box-city.wrl"/>
</feature3D-lod>
</feature3D-group>
</feature-set>
Alle feature3D objekter (<feature3D-external>,
<feature3D-group>, <feature3D-lod>og
<feature3D-point>) har følgende felles egenspkaper:
Barn
Info elementet inneholder tekst som vises i et eget vindu når det
"pekes og klikkes" på objektet i 3D vinduet. Når info
spesifiseres for gruppe objekter gjelder det for alle barn hvis de
ikke har egne info elementer. Teksten i info
elementet kan være HTML kode (med innlagte lenker til eksterne HTML
sider). Det må da pakkes inn i en CDATA blokk for å unngå å
forvirre XML tolkeren:
<info>
<![CDATA[
Denne bygningen er
<A HREF="http://www.hotellmaritim.no">Hotell Maritim</A>
]]>
</info>
Når brukeren aktiverer en lenke i info teksten vil den komme opp i en egen web browser.
Attributter
- detail-size
- Størrelse i meter på detaljer i 3D objektene i
denne fila. Objektene blir synlige når detaljer i denne størrelsen
blir større enn en pixel på skjermen. Om denne ikke er satt blir den
satt til uendelig, dvs. at objektet alltid forsøkes vist når det er i
synsfeltet.
- base-url
- Basis URL for barn av dette 3D objektet. Relative URLer i barna bygger på denne.
Referanse til ekstern fil med 3D objektdata. Attributtene bbox og
detail-size bestemmer når 3D dataene i denne fila forventes å bli
synlige, og skal lastes. Hvis dataene står utenfor synsfeltet i
lengere tid kan programmet slette dem for å spare lagringsplass (og
eventuelt laste dem på nytt hvis de igjen blir synlige). Ved fornuftig
bruk av disse elementene er det mulig å bygge svært store verdener
uten å overbelaste 3D systemet.
Foreldre
Barn
Ingen barn i samme fil, de lastes fra en ekstern fil. Den eksterne
fila vil ha en <feature3D-group> som rot, og denne vil da komme
som barn av ekstern referansen når fila lastes.
Attributter
- href
- URL til ekstern VGML fil med 3D objektdata
- bbox
- Kommaseparert liste som angir en boks rundt
dataene. Brukes for å bestemme når disse dataene blir synlige og
dermed skal lastes inn og vises. Rekkefølge: "min-lengde,
min-bredde, min-høyde, max-lengde, max-bredde, max-høyde". Lengde
og bredde er lengde og breddegrad i desimalgrader, høyde er høyde over
havet i meter.
En gruppe av 3D objekter.
Foreldre
Barn
Attributter
Kun <feature3D> standard attributter
En gruppe av 3D objekter der bare ett av barna vises. I motsetning til
<feature3D-group> der alle barn som tilfredstiller kravet til
detaljstørrelse vises så vises her kun det første barnet som har
tilstrekkelig stor detaljstørrelse. Barna må derfor listes i en
rekkefølge sortert på stigende detaljstørrelse.
<feature3D-lod> benyttes normalt for å vise forskjellige
versjoner av samme objekt avhengig av hvor nær vi er objektet. Når vi
er nær kan små detaljer vises og vi bruker den mest detaljerte
versjonen. Når vi er lengere unna vil bare store detaljer vises og vi
bruker en mindre detaljert versjon. Dette kan bedre effektiviteten ved
bruk av svært sorte og komplekse modeller.
Foreldre
Barn
Attributter
Kun <feature3D> standard attributter
Et enkelt 3D objekt.
Foreldre
Barn
Attributter
I tillegg til <feature3D> standard attributter har vi også:
- lon
- Lengdegrad, desimalgrader
- lat
- Breddegrad, desimalgrader
- h
- Høyde over vertikalreferanse, meter. Hvis den ikke er satt er den "0"
- vert-ref
- Vertikal referanse, enten "sea-level" eller "terrain". Hvis attributtet ikke er satt er den "terrain".
- azimuth
- Kompassretning, desimalgrader, null nordover, positiv dreieretning til høyre.
Hvis den ikke er satt er den "0". Azimuth benyttes normalt for å kompansere for merediankonvergens.
Disse attributtene plasserer origo i 3D objektet i forhold til et globalt koordinatsystem og terrengflate.
3D modell lastet fra VRML eller X3D fil.
Foreldre
Barn
Ingen
Attributter
- href
- URL til VRML eller X3D fil.
- bbox
- Bounding box i VRML filens koordinatsystem "minx,miny,minz,maxx,maxy,maxz" (defaultverdi er -100,-100,-100,100,100,100)
Definerer et skilt som kan snu seg slik at det alltid fronter betrakteren.
Foreldre
Barn
Ingen
Attributter
- image
- URL til bildefil som skal vises på skiltet.
- text
- Hvis bildefil ikke er spesifisert kan man istedet sette en tekst. \n i teksten gir et linjeskift. Hvis hverken bilde eller tekst er spesifisert vises kun skiltstammen.
- board-height
- Høyde på skiltplate i meter i terreng, bredde tilpasses automatisk bildets høyde/breddeforhold
- stem-height
- Høyde på skiltstang i meter i terreng.
Samling av utkikkspunkter. Synspunktet går til en av disse når det blir valgt i menyen.
Foreldre
Barn
Attributter
Ingen
Eksempel
<viewpoint-set>
<viewpoint name="Europe">
4.78760792770,27.525094365,3178271,0.39637688,-60.0
</viewpoint>
<viewpoint name="North America">
-98.17452747,18.241150,6758337,0.1405,-75.2
</viewpoint>
</viewpoint-set>
Et utkikkspunkt.
Foreldre
Barn
Ingen
Tekst data
Kommaseparert liste av utkikkspunkt data:
lengdegrad, breddegrad (begge desimalgrader), høyde over havet, kompassretning, høydevinkel
Attributter
- name
- Navn som vises i menyen.
Inneholder en liste av flyruter.
Foreldre
Barn
Attributter
Ingen
Eksempel
<flypath-set>
<flypath name="Fly til byen" href="til-byen.vgml"/>
<flypath name="Fly ned dalen" href="ned-dalen.vgml"/>
</flypath-set>
Inneholder en liste av punkter som vi kan fly gjennom. En flypath
genereres normalt ved å bruke menyen i "Verktøy/Flyrute", og lagres
til en fil. Denne fila refereres så i datadefinisjons VGML fila.
Foreldre
Barn
Hvis flypath'en ikke har et "href" attributt som peker til en ekstern
flypath så vil den inneholde en liste av rutepunkter.
- <point>
- Et element som inneholder data for et rutepunkt
som vi flyr igjennom. Rutepunktdataene er en kommaseparert liste på
denne formen: lengdegrad, breddegrad, høyde over havet (meter),
kompassretning, høydevinkel, flytid fra forrige punkt
(millisekunder)
Attributter
- href
- URL til en ekstern vgml fil med fly path data.
- name
- Navn på flyrute (vises i meny)
Eksempel
Eksempel på meget kort flyrute i ekstern VGML fil.
<?xml version="1.0" encoding="ISO-8859-1"?>
<vgml>
<fly-path>
<point>
9.256671594044697,63.22181354779337,630.3579845205818,264.66595594008703,-14.025796365653052,0
</point>
<point>
9.25481485712572,63.221735324724555,606.9316868273427,264.6642983250122,-14.025796365653052,656
</point>
<point>
9.252991896855047,63.22165850065348,583.9314231774072,264.66267086539153,-14.025796365653052,672
</point>
</fly-path>
</vgml>
Kontakt: Rune.Aasgaard@nkgs.no