SVG
Børre Stenseth
Eksempler >Norge

Kart

Hva

I de følgende modulene har jeg brukt to datakilder, en med norske kommuner som svg-data og en med litt data om de enkelte kommunene.

Kartdata i ulike former har de siste årene blitt tilgjengelige uten kostnad. Det er mange kilder for kart og kartrelaterte data. Noen av disse er referert nederst på siden.

SVG

Et SVG-kart med norske kommuner fra Wikimedia Commons [1] . Dette ser slik ut i (XML-fil dumpet som rå tekst): svgdata/Norway_municipalities_2012_blank.txt

Som du ser er kommunene pakket fylkesvis, der fylket er et g-element som omslutter kommunene i fylket som ligger som path-elementer, typisk:

   
<g
  id="02"
  inkscape:label="Akershus">
  <path
    inkscape:label="Vestby"
    id="0211"
    style="fill:#999999;fill-opacity:1;stroke:none"
    d="m 713.17687,2599.7778 c -0.21042,-0.3537 -0.63225,-1.0846 ... z"
    inkscape:connector-curvature="0" />
  <path
    inkscape:label="Ski"
    id="0213"
    style="fill:#999999;fill-opacity:1;stroke:none"
    d="m 726.19163,2565.224 -2.68402,-5.3994 0.0621,-0.5986 ... z"
    inkscape:connector-curvature="0" />
	...
</g>
 

Fila inneholder en masse som er relevant for den editoren som er brukt til lage den (inkscape), og den kan slankes og forenkles betraktlig.

Jeg har gjort følgende inngrep i det som inkluderes på siden:

  • Fjernet alt unntatt svg-elementet
  • Pakket path med navn Oslo inn i et g-element slik at Oslo opptrer både som fylke og kommune
  • Fjernet alle namespace angivelser
  • Har tatt høyde for at Bjarkøy er slått sammen med Harstad
  • Jeg har endret attributtene til svg-elementet slik:
     	
    <svg
     version="1.2"
     width="600px"
     height="600px"
     viewBox="600.15482 40.73736 1076.0438 2876.6739"
     id="NO"
     >
    

Resultatet av dette er kopiert inn som et SVG-element på den siden som skal vise kartet. Dette kan gjøres på flere måter. Jeg kan hente elementet som AJAX nå siden lastes.

<svg
 version="1.2"
 width="600px"
 height="600px"
 viewBox="600.15482 40.73736 1076.0438 2876.6739"
 id="NO"
>
<g
 id="01"
 label="Østfold">
<path
   label="Halden"
   style="fill:#999999;fill-opacity:1;stroke:none"
   id="0101"
   d="m 800.69641,2717.5047 c -0.29632,-0.2395 -1.18938,-1.0938 -1.98449,-1.8986 ... z"
   />
<path
   label="Moss"
   style="fill:#999999;fill-opacity:1;stroke:none"
   id="0104"
   d="m 713.90122,2612.7701 c 0,-0.061 0.32909,-1.2223 0.73118,-2.5801 0.75849 ...z"
   />
   ...
</g>
....
</svg>

DATA

Jeg har hentet noen enkle datasett for hver kommune. Disse er hentet fra Wikipedias side om norske kommuner [2] . Denne siden er transformert til json og er også gjort tilgjengelig som en javascript-variabel.

Et lite utdrag:

kdata={"logoLocation":"https://borres.hiof.no/resources/kommunelogos/",
"list":[
{
  "id":"0101",
  "name":"Halden",
  "center":"Halden",
  "fylke":"Østfold",
  "fylkesId":"01",
  "pop":30132,
  "area":642.34,
  "logo":"0101.svg.png"
},
{
  "id":"0104",
  "name":"Moss",
  "center":"Moss",
  "fylke":"Østfold",
  "fylkesId":"01",
  "pop":31308,
  "area":63.49,
  "logo":"0104.svg.png"
},....

Vi kan selvsagt bruke alle mulige slags datasett så lenge vi kan linke datasettet til path-elementet i svg ved hjelp av id'en til hver kommune.

Tilsvarende data er lagret for fylker.

var fdata={"logoLocation":"https://borres.hiof.no/resources/fylkeslogos/",
"flist":[
{
	"name":"Østfold",
	"id":"01",
	"center":"Sarpsborg",
	"logo":"01.png",
	"area":"4182.19",
	"pop":284962,
	"kcount":18,
	"klist":[
		{"kname":"Halden","kid":"0101"},
		{"kname":"Moss","kid":"0104"},
		{"kname":"Sarpsborg","kid":"0105"},
		...
		]},
		...
]}

[1] [3] [4] [5] [6] [7] [8]
Referanser
  1. Norway municipalities 2012 Wikimedia Commons commons.wikimedia.org/wiki/File:Norway_municipalities_2012_blank.svg 02-11-2014
  1. Norges kommuner Wikipedia no.wikipedia.org/wiki/Norges_kommuner 02-11-2014
  1. Google Maps API Google developers.google.com/maps/documentation/javascript/ 14-10-204
  1. JavaScript Charts AMCHARTS www.amcharts.com/ 02-11-2014
  1. Kart Kartverket www.statkart.no/ 02-11-2014
  1. OpenStreetMap openstreetmap.org www.openstreetmap.org 02-11-2014
  1. FreeMaps FreeMaps www.freemaps.no/ 23-06-2014
  1. Geonames GeoNames www.geonames.org/ 14-03-2010
Eksempler >Norge