Å konfigurere den Virtuelle Globen

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.

<universe>

Dette er rot elementet i en datakonfigurasjonsfil.

Foreldre

Ingen, er alltid rotelement.

Barn

Atributter

Ingen

<world>

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>

<globe-surface>

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

<elevations>

Høydedataset for en globe flate.

Foreldre

Barn

Ingen

Attributter

href
URL til høydeserveren

<simple-pyramid-coverage>

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

<layered-pyramid-coverage>

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&amp;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>

<wms-texture-set>

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&amp;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 &amp;.
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&amp;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).

<layer>

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.

<local-texture-set>

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).

<feature-set>

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>

Felles for alle <feature3D-...>

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.

<feature3D-external>

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.

<feature3D-group>

En gruppe av 3D objekter.

Foreldre

Barn

Attributter

Kun <feature3D> standard attributter

<feature3D-lod>

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

<feature3D-point>

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.

<vrml-model>

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)

<billboard>

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.

<viewpoint-set>

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>

<viewpoint>

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.

<flypath-set>

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>

<flypath>

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