Mange av grensesnittene er standardiserte, og dette gjør dem enklere å ta i bruk. Da trener du bare et kartprogram som støtter det valgte grensesnittet for å få tilgang til dataene. Det finnes flere kartprogrammer som er gratis tilgjengelig og som støtter slike grensesnitt.
Standardiserte tjenester/API-er for eksempel:
- Web Map Service (WMS)
- Web Feature Service (WFS)
- Web Coverage Service (WCS)
- Cache-tjenester/Web Map Tiles Service (WMTS)
Denne typen tjenester har fast oppbygning, og standarden definerer hvilke kall som støttes og hva tjenesten returnerer. Forskjellen ligger i innholdet, hvor ulike datasett etterspørres og returneres.
WMS-tjenester
Når du bruker en WMS (Web Map Service) tjeneste, er det en server som på forespørsel sender brukeren kartutsnitt i form av rasterfiler (PNG eller JPEG, men bruk PNG hvis du skal legge flere WMS-tjenester sammen, for å få transparente lag). Det kan den gjøre enten direkte i nettleseren, i en webapplikasjon eller en desktopapplikasjon. Tjenestene basert på WMS-spesifikasjonen er fleksible og gir mange muligheter. Du kan for eksempel:
- Velge hvilket koordinatsystem kartbildet skal produseres i
- Skru av eller på kartlag i tjenesten. For eksempel kan du velge at bare veier og vann skal tegnes opp (og alt annet utelates)
- Velge målestokken selv
- Velge bakgrunnsfarge, eventuelt sette denne til transparent
- Velge hvilket bildeformat som skal produseres
- Hente ut tegnforklaring for de ulike kartlagene
- Hente enkel informasjon om objekter i kartbildet, som for eksempel bygninger, veier og eiendommer
Det finnes flere desktop- og webklienter som er i stand til å kommunisere med en WMS-tjeneste uten at man må utvikle kode selv, for eksempel følgende desktopklienter: QGIS, uDig eller Gaia3.
QGIS brukermanual viser deg hvordan du åpner en WMS i QGIS. ESRIs brukerveiledning viser hvordan du åpner en WMS i ArcMap .Husk bare at etter å ha åpnet WMS-en i ArcMaps, må du aktivere alle lagene du er interessert i, ellers vises ikke noe.
Den mest vanlige Open Source-webklienten er OpenLayers. Se eksempelkode i OpenLayers her.
Les mer om å bruke ulike webklienter med Karteverkets tjenester på Kartverkets GIT-hub
WFS-tjenester
I motsetning til WMS, som leverer et kartbilde, leverer WFS (Web Feature Service) objektene som vektordata. Grensesnittet muliggjør søking etter innhold i datasettet ved å angi søkekriterier i et filter. Filterspørringene er beskrevet med et standardisert spørrespråk, ISO 19143 Filter Encoding/OGC FES 2.0.
Det er først og fremst tre forespørsler/kall som brukes:
- GetCapabilities - henter metadata om tjenesten, for eksempel hvilke objekttyper som tilbys, hvilke type forespørsler og filtre tjenesten tilbyr. Se eksempler på GetCapabilities - kall her
- DescribeFeatureType - henter beskrivelse av datainnholdet i form av et XML skjema (XSD). Se eksempler på DescribeFeatureType
- GetFeature - henter selve datainnholdet/objekter med tilhørende egenskaper. Se eksempler på GetFeature.
For å teste detaljene i disse spørringene, kan du prøve NGUs demoklient for WFS.
Se detaljert veiledning for å bruke WFS i QGIS. Denne gjelder QGIS versjon 2.x. Du kan også lese en generell veileder for WFS (pdf) som er utarbeidet av Norge digitalt-samarbeidet.
WCS-tjenester
En Web Coverage Service (WCS) er en nedlastingstjeneste som returnerer rasterfiler eller grid-data. Grid-data representer geografien i ruter med fast rutestørrelse, for eksempel flyfoto eller satellittfoto. Dette er bilder med pikselstørrelse (rutestørrelse) fra 10 cm til 10 meter, eller mer, i terrenget. Hver piksel vil ha sin egen farge- eller gråtoneverdi. En WCS-tjeneste gir deg for eksempel en TIFF-bildefil. Denne filen har georeferingsinformasjon som sørger for at en kartapplikasjon kan plassere bildefilen på riktig sted i kartet. Tilsvarende for høydedata vil si at hver piksel har en egen høydeverdi.
Operasjoner/kall i en WCS-tjeneste:
- GetCapabilities - henter metadata om tjenesten, for eksempel hvilke datalag (coverage) som tilbys og hvilke type forespørsler og filter tjenesten tilbyr. Se eksempler på GetCapabilities
- DescribeCoverage - henter mer omfattende beskrivelse av datainnholdet for hvert datalag (coverage). Se eksempler på DescribeFeatureType
- GetCoverage - henter selve datainnholdet/ruter med tilhørende egenskaper.
Cache-tjenester (WMTS)
Cache-tjenester fungerer ganske likt en WMS, men er basert på et hurtiglager med pregenererte kartbilder eller fliser ("tiles" på engelsk) på 256x256 pixler i predefinerte målestokker (zoomnivåer). En cache-tjeneste leverer ikke kartbilder i fritt valgt målestokk, men kun i de forhåndsdefinerte målestokkene som er definert i tjenesten. Cache-tjenestene er mindre fleksible, men raskere enn WMS. Google Maps eller Bing Maps er kjente tjenester som er bygd opp på denne måten (les om kartflis-systemet i Bing Maps her).
Simple Object Access Protocol (SOAP)
Dette er en XML-basert webservice som i dag ofte erstattes av REST-tjenester. Matrikkel-API-et baserer seg på denne protokollen og tjenesten beskrives gjennom en WSDL-fil (Web Service Description Language).
REST-tjenester (REpresentational State Transfer)
Dette er JSON-baserte webtjenester som kan sendes direkte over HTTP/HTTPS. Disse tjenestene er langt enklere enn SOAP-tjenester. Eksempler på REST-tjenester er ArcGIS REST API, som tilbys av flere store ESRI-brukere. Eksempel på ArcGIS REST-api fra NVE.
OpenAPI specification (tidliger kalt Swagger Specification) er en standardisert måte å beskrive innholdet i en REST-tjeneste. Med OpenAPI kan du beskrive hele API-et, inkludert:
- Alle endepunkt (/users) og operasjoner på hvert endepunkt (GET /users, POST /users)
- Parametere for input og output for alle operasjoner
- Autentiseringsmetoder
- Kontaktinformasjon, lisens, bruksvilkår m.m.
Et OpenAPI-dokument gir en standardisert JSON-fil. Den kan vises på web som en interaktiv side hvor du enkelt kan teste ut API-et og generere kode for programmering mot det.
Se eksempel på REST med OpenAPI (eksempel på JSON-fil og HTML)
Dokumentasjon og beskrivelser av REST-tjenster finner du på API-et sin side i Geonorge. Trykk "Vis produktside".
Stedsnavnsøk-API-et har ikke slik dokumentasjon, men en brukerveiledning for stedsnavn-API-et finnes her.
Cache-tjenester fra Kartverket
Cache-tjenester baseres på et hurtiglager med pregenererte kartbilder eller fliser ("tiles" på engelsk) på 256x256 pixler i predefinerte målestokker (zoomnivåer), på tilsvarende måte som Google Maps eller Bing Maps er bygd opp (les om kartflis-systemet i Bing Maps her). Derfor kan en cache-tjeneste ikke levere kartbilder i fritt valgt målestokk, men kun i de forhåndsdefinerte målestokkene som er definert i tjenesten. Cache-tjenestene er mindre fleksible, men raskere enn WMS.
Inndeling i fliser ("tiles")
For å kunne bruke en cache-tjeneste, må inndelingen av kartbilder (fliser/tiles) være kjent. Utgangspunktet for inndelingen er den geografiske utstrekningen på zoomnivå 0 (illustrasjonen nedenfor).
Hver flis deles så opp i fire nye fliser, som igjen deles opp i fire nye fliser som vist nedenfor.
Cache-tjenester bør i utgangspunktet brukes, hvis det ikke er behov for funksjonalitet som kun tilbys av WMS-tjenestene. Det er også mulig å bruke en kombinasjon av WMS- og cache-tjenester. Cache-tjenestene kan for eksempel brukes til selve kartvisningen, mens WMS-tjenestene brukes til å hente tegnforklaring.
Zoomnivå
For å kunne lage en applikasjon som benytter cache-tjenester basert på WMS-C, må definisjonen av zoomnivå 0 i de ulike koordinatsystemene som tilbys være kjent. Tabellen nedenfor viser dette:
Nedre venstre (LL) og øvre høyre (UR) hjørne av zoomnivå 0 i ulike koordinatsystemer
Koordinatsystem |
EPSG-koder |
xmin |
ymin |
xmax |
ymax |
UTM32 |
32632/25832 |
-2000000 |
3500000 |
3545984 |
9045984 |
UTM33 |
32633/25833 |
-2500000 |
3500000 |
3045984 |
9045984 |
UTM34 |
32634/25834 |
-3000000 |
3500000 |
2545984 |
9045984 |
UTM35 |
32635/25835 |
-3500000 |
3500000 |
2045984 |
9045984 |
UTM36 |
32636/25836 |
-4000000 |
3500000 |
1545984 |
9045984 |
Geografisk |
4326 |
-180 |
-90 |
180 |
90 |
Google Web Mercator |
3857/900913 |
-20037508.34 |
-20037508.34 |
20037508.34 |
20037508.34 |
ETRS-LCC |
3034 |
2100000.2378 |
820000.9292 |
6300000.4541 |
5021872.0731 |
ETRS-LAEA |
3035 |
2426378.0132 |
1528101.2618 |
6293974.6215 |
5446513.5222 |
Oversikt over zoomnivåer og tilhørende målestokk:
Zoomnivå |
Målestokk |
Tilestørrelse x meter |
Tilestørrelse y meter |
0 |
1:81920000 |
5545984 |
5545984 |
1 |
1:40960000 |
2772992 |
2772992 |
2 |
1:20480000 |
1386496 |
1386496 |
3 |
1:10240000 |
693248 |
693248 |
4 |
1:5120000 |
346624 |
346624 |
5 |
1:2560000 |
173312 |
173312 |
6 |
1:1280000 |
86656 |
86656 |
7 |
1:640000 |
43328 |
43328 |
8 |
1:320000 |
21664 |
21664 |
9 |
1:160000 |
10832 |
10832 |
10 |
1:80000 |
5416 |
5416 |
11 |
1:40000 |
2708 |
2708 |
12 |
1:20000 |
1354 |
1354 |
13 |
1:10000 |
677 |
677 |
14 |
1:5000 |
338,5 |
338,5 |
15 |
1:2500 |
169,25 |
169,25 |
16 |
1:1250 |
84,625 |
84,625 |
17 |
1:625 |
42,3125 |
42,3125 |
18 |
1:321.3 |
21,15625 |
21,15625 |
19 |
1:156.25 |
10,578125 |
10,578125 |
20 |
1:78.125 |
5,2890625 |
5,2890625 |
Hvis du vil bruke Kartverkets cache-tjenester i en klient (som OpenLayers, Google Maps API eller liknende) kan de eksakte "resollutions" fra denne lenken være nyttige.
Bildeformater
Cache-tjenestene støtter bildeformatene PNG og JPEG. Den enkelte situasjonen vil avgjøre hvilket format det passer best å bruke. JPEG-kartbildene har mindre filstørrelse enn PNG, slik at overføring til klienter går fortere. Er man derimot avhengig av en transparent bakgrunn for å kombinere cache-tjenestene med andre tjenester, må man velge PNG.
Bildeformat |
Mime type |
Bakgrunnsfarge |
JPEG |
image/jpeg |
hvit |
PNG |
image/png |
transparent
|