Moderne Webkart

Agenda

  1. Bakgrunn
  2. Teknologi
  3. Muligheter

Bakgrunn

Google Maps

  • Lansert 2005
  • Mashups
  • "Slippy maps"
  • APIer

Kjennetegn

  • Hele verden
  • "Tiles"
  • Enkelt grensesnitt

Andre webkart

Teknologi

"Kartstack"

Romlig Database

  • Vektordata
  • Spørringer
  • Rask tilgang sammenlignet med fil
  • Romlige operasjoner

Kartserver

  • Rendrer vektordata til "bilde"
  • Tegneregler
    • SLD, CartoCSS
  • Leverer WMS, WFS

Klient

  • Kjører i nettleseren
    • JavaScript
  • Håndterer logikk for zoom/pan
  • Annen funksjonalitet
    • Tegning
    • Søk
    • +++

Et WMS-kall

  • Brukerspesifiserte utsnitt
  • Forskjellige koordinatsystem
  • Mange muligheter

WMS-kall

http://openwms.statkart.no/skwms1/wms.kartdata2
?LAYERS=Kartdata2_WMS
&FORMAT=image/png
&SERVICE=WMS
&VERSION=1.1.1
&REQUEST=GetMap
&STYLES=
&SRS=EPSG:3A32633
&WIDTH=800
&HEIGHT=800
&BBOX=270387.13671875,7040177.7880859,270916.04296875,7040706.6943359

Hva skjer?

  1. Hent data fra database
    1. Transformer til riktig koordsys
    2. klipp vekk unødvendige data
  2. Tegn data vha tegneregler
  3. Gjenta 1-2 for hvert lag
  4. Kombiner og send til klient

WMS - fordeler

  • Egendefinert:
    • utsnitt
    • størrelse
    • målestokk
    • koordinatsystem
  • Alltid “ferskeste” data

Hva kan forbedres?

  • Lagre kartutsnitt på server:
    • Lever dette hvis det finnes!
    • Sparer databasehenting og rendring
    • Kartfliser / tiles

WMS-C / WMTS

  • WMS-Cached (gammel)
  • Web Map Tile Service – ny OGC standard

  • Gitte utsnitt
  • Ett koordinatsystem
  • Gitte målestokker (halvering)

WMTS-kall

Flere kall av typen

http://opencache.statkart.no/gatekeeper/gk/gk.open?
LAYERS=topo2
&FORMAT=image/png
&SERVICE=WMS
&VERSION=1.1.1
&REQUEST=GetMap
&STYLES=
&SRS=EPSG:3A32633
&WIDTH=256
&HEIGHT=256
&BBOX=270453.25,7040202.25,270622.5,7040371.5
        

Kan vi gjøre det enklere?

Google

http://mt1.google.com/vt/lyrs=m@205175871
&x=138649
&y=70868
&z=18
        

OpenStreetMap

http://b.tile.openstreetmap.org/17/69326/35435.png

Dvs /z/x/y.png

Tile-oppdeling

  • Del opp verden I rutenett (x,y)
  • Z angir målestokk
  • Z=1 gir:
  • Enkelt å hente fra disk

Hvordan lage tilesets?

  • Hente fra WMS-server
    • GeoWebCache
  • Egne programmer
    • TileMill
    • Mapnik

Ulemper med Tilesets

  • "Dyrt" å lage tiles
  • Låst til et koordinatsystem
  • Dobbeltlagring
  • Må re-generere når nye data

Når burde jeg tile?

  • Du har mye statiske data
    • Bakgrunnskart, nye hver måned/halvår?
  • Som brukes mye
  • Bruken er en kartklient på web
  • Dette burde leverandør ha kontroll på!

Når burde jeg IKKE tile?

  • Dataene oppdateres ofte
    • Værkart (daglig, hver time)
    • Dataene aggregeres på mange måter
  • Dataene skal leveres på mange format
  • Krav til spesielle målestokker

Noen begreper

  • EPSG-kode:
    • Identifikator for koordinatsystem
    • European Petroleum Survey Group
    • http://epsg-registry.org/ / http://spatialreference.org/
  • Web Mercator
    • "Google-projeksjon" / Pseudo Mercator / Sperical Mercator
    • EPSG:900913 / EPSG: 3857

Stilsetting av kart - SLD

  • Bruker et kodespråk for å beskrive stiler
  • SLD (Styled Layer Descriptor) er OGC-standard
    • XML-basert
    • Ganske “tungt”

CartoCSS

  • CSS brukes for å stile websider
  • CartoCSS brukes av TileMill for kartografi

Kan vi gjøre det ENDA bedre?

  • Ja, vi kan levere vektordata direkte!
  • Disse kan også tiles
    • Og forenkles på noen målestokker
  • Dette stiller store krav til klienten!
    • Begynner å komme!
    • Google Maps Android

Vektorformater for web

GML

XML-basert, OGC:
<position>
    <gml:Point srsDimension="2"
            srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
        <gml:pos>49.40 -123.26</gml:pos>
    </gml:Point>
</position>
            

GeoJSON

JSON-basert
{ "type": "Point", "coordinates": [100.0, 0.0] }

KML

XML, Google
<Point>
    <coordinates>-74.006393,40.714172,0</coordinates>
</Point>

Muligheter

Turkompisen.no

TileMill eksempel

Maps.stamen.com

Leaflet

Polymaps

Giscloud 6.000.000 objekter

http://www.giscloud.com/map/16594/germany-6000000-features

Cesium

Nokia Here

Ressurser

Spørsmål?