Karta

Sammanfattning

Kartfältet gör det möjligt att presentera en dynamisk karta i formulären. Fältet stödjer i dagsläget kartbilder från flera tjänster.

  • Google Maps - Kartlager som stöds är Vägar, Hybrid, Satellit och Terräng.
  • OpenStreetMaps - Öppen karttjänst som byggs och underhålls av dess användare (gratis).
  • WMS - Kort för Web Map Service vilket är ett generellt protokoll för att leverera kartdata.

Varje karta måste ha minst ett bakgrundslager. Google Maps och OpenStreetMaps kan endast användas som bakgrundslager medan WMS kan fungera både som bakgrundslager och överlager. Vektorlager används typiskt för att visas ovanpå ett bakgrundslager och är t.ex. det som används för att skapa markörer.

Generella inställningar

Proxy

Egenskap Beskrivning
Använd proxy Kryssa i för att ange att kartan ska använda proxyfunktionalitet. Om ingen proxyvärd anges så används standardvärdet.
Proxyvärd Ange url till proxyvärd. Denna är till för att göra anrop till andra domäner, t.ex. vid geokodning. Det finns två inbyggda proxies i DF RESPONS utifall att någon skulle strula.
~/SimpleProxy.ashx?url=
En enkel synkron proxy (standard).

~/StreamingProxy.ashx?url=
Avancerad asynkron proxy.

Proxyinställningar

Normalt sett så gör kartkontrollen anrop för att hämta kartbilder, geocodning m.m. genom att direkt anropa dessa tjänster via webbläsaren. Proxy är en funktion som innebär att vissa anrop kartan gör sker via en server. När anrop sker via webbläsaren så görs anropen med det aktuella IP:t som avsändare vilket skiljer sig åt mellan användare. När anrop sker via proxy så får alla anrop samma IP.

När behövs proxy?

Proxy behövs när det är viktigt att alla anrop kommer från samma IP/domän. En orsak är säkerhet där det finns inbyggda skydd i webbläsare som förhindrar att en domän anropar en annan domän, t.ex. anrop från dindomän.se till maps.google.se. En annan orsak kan vara krav hos den aktuella karttjänsten för att få använda vissa funktioner.

Karttjänst Proxy
Google Maps API Behövs inte eftersom karttjänsten endast hämtar bilder.
Google Geocoding API Behövs inte om API-nyckeln som används är öppen (ej IP-skyddad) då tjänsten stödjer CORS (se nedan). Om API-nyckeln är säkrad med IP-skydd så måste proxy användas så att alla anrop kommer från samma IP. Notera att kartan kommer använda angiven proxyvärd om separat nyckel angivits för geokodning, även om Använd proxy är urkryssad.

CORS

Cross-Origin Resource Sharing är en mekanism som servrar kan stödja för att tillåta hämtning av skyddade resurser över domän. Utan CORS skulle dessa hämtninga inte var tillåtna då webbläsare skyddar användaren mot olika typer av attacker.

Google

Egenskap Beskrivning
API-nyckel karta API-nyckel för Googles karttjänster. Ska alltid anges om Google-lager används i fältet. Se nedan för information hur dessa sätts upp.
API-nyckel geokodning Ange API-nyckel för Googles geokodningstjänster. Ska alltid anges om API-nycklar är stöldskyddade. Se nedan för information om hur dessa sätts upp.
API-version Ange specific API-version för Googles karttjänster, t.ex. '3.25'. Lämna tomt för standard som är senaste release-version.

Allmänt om nycklar

Sedan mitten på 2018 har Google en ny prismodell för användandet av deras molntjänster, t.ex. Google Maps och Google Geocoding. Detta innebär att alla anrop till dessa tjänster kräver en godkänd API-nyckel annars fungerar inte tjänsterna korrekt. Nycklar skapas och hanteras via Google Cloud Platform. För att skapa nycklar krävs ett konto med associerad betalningsinformation eftersom ett stort användande av tjänsterna kostar pengar. Mer information om prismodellen finns här.

Säkerhet

Eftersom det kan bli kostsamt att använda sig av Googles API:er är det viktigt att stöldskydda sina API-nycklar. Hur dessa skyddas skiljer sig mellan tjänsterna. T.ex. så är det olika för Google Maps och Google Geocoding.

Hur många nycklar?

Det är möjligt att använda samma nyckel till Google Maps och Google Geocoding men endast om de inte är skyddade. Google Maps nycklar kan endast skyddas med HTTP referrer och Google Geocoding kan endast skyddas på IP-nivå. Oskyddade nycklar bör undvikas.

Google Maps API

API-nycklar för Google Maps kan skyddas med något som kallas HTTP referrer. Kartfältet gör sina anrop till Google Maps från varje unik webbläsare men skickar också med från vilken sida anropet sker, t.ex. https://respons.digitalfox.se. För dessa API-nycklar är det viktigt att ange vilka sidor (HTTP referrer) som får användas. Dessa inställningar görs under fliken Application restrictions.

Inställning för HTTP referrer

Det är även rekommenderat att begränsa vilka API:er som tillåts använda vilka nycklar. Det görs under fliken API restrictions.

Inställning för API-begränsning

Google Geocoding API

API-nycklar för Google Geocoding skyddas på IP-nivå. Detta innebär att endast anrop från angivna IP/subnät är tillåtna.

Inställning för IP-adresser

Https

Egenskap Beskrivning
Använd Https Ange om HTTPS ska användas eller om det ska vara automatiskt. Om inte automatiskt detektering av HTTPS fungerar är det möjligt att tvinga HTTPS av/på.

Specifika inställningar

Det är möjligt att använda sig av olika konfigurationer av kartfältet beroende på om det används internt (inloggad användare) eller externt (publika formulär). T.ex. går det att ha en Google-karta externt och en WMS internt. Det är dock ganska vanligt att huvudinställningarna görs internt för att sedan ha vissa justeringar externt. Inställningar delas in tre sektioner:

  • Kartinställningar - Innehåller allmänna konfigurationsalterntiv för kartkontrollen samt konfiguration av kartans lager.
  • Geokodningsalternativ - Inställningar för vald geokodningstjänst. Det är möjligt att ha en Google-karta men Nominatim (OpenStreetMap) som geokodningstjänst.
  • Visningsalternativ - Inställningar för visad funktionalitet i karta, verktygsrad och informationspanel (markörer).

Tips!

Det går t.ex. bra att använda samma inställningar för intern/extern karta men för extern karta ändra visningsalternativ.

Kartinställningar

Dessa inställningar är av en avancerad natur och behöver endast användas i specialfall för att få kartkontrollen att bete sig på ett visst vis. Normalt sett kommer kartkontrollen utgå från det aktuella baslagret och hantera dessa inställningar självt.

Egenskap Beskrivning
Aktivera debug-läge Anger om debug-information ska skrivas ut till webbläsarens konsoll. Det är möjligt att styra detta dels för fältet, dels för kartkontrollen.
Projektion Anger vilket koordinatsystem (EPSG-referens) kartkontrollen ska använda sig av. Standardprojektion är WGS84 -> EPSG:4326).
Enhet Anger vilken enhet som ska användas för att mäta avstånd i kartan, vissa koordinatsystem använder normalt sett grader, andra meter (EPSG:3857).
Max upplösning Engelska: Max Resolution Anger kartans maximala upplösning i enheter/pixel, t.ex. 1000 m/pixel. Värdet ska anges i samma enhet som projektionen.
Upplösningar Engelska: Resolutions Anger kartans möjliga upplösningar (antal enheter/pixel) som en semikolonseparerad lista (1,1; 2,2; 3,3). Värdet ska anges i samma enhet som projektionen.
Max kartomfång Engelska: Max Extent Anger kartans maximala omfång, dvs. vad som kan visas som mest. Ska anges i samma enhet som projektionen.
Begränsat kartomfång Engelska: Restricted Extent. Anger kartans begränsade omfång, dvs. gräns för vart användaren kan panorera.

Kartlager

Kartfältet kan presentera ett antal olika kartlager. Varje typ av kartlager har olika funktion och syfte. Vissa lager är lämpliga att använda som bakgrundslager, vissa är lämpliga att använda för att visa ovanpå ett bakgrundslager.

Google
OpenStreetMap
Vektor
WebMapService
Rapportdefinition

Geokodningsalternativ

Egenskap Beskrivning
Används kartans omfång Ange om kartans omfång (maximala) ska användas för vid sökning. Om detta värde är Ja så gäller det oavsett om Eget sökomfång har angetts.
Eget sökomfång Ange eget sökomfång, dvs. inom vilket omfång som sökning/geokodning är möjlig. För att detta ska gälla måste Använd kartans omfång vara satt till Nej. Tänk på att värdena ska vara angivna i WGS84.
Tidsgräns Tidsgräns för sökning angivet i millisekunder.
Resultatzoom Värde för inzooming efter lyckad geocodning. Värde ska vara offset från högsta inzoomning där 0 är mest detaljerat.
Resultatmarkör Huruvida en resultatmarkör om möjligt ska sättas ut platsen för sökresultatet.
Användarmeddelanden
Adressökning
Adressök (lyckad) Meddelande som visas för användaren efter lyckad adressökning.
Adressök (ingen träff) Meddelande som visas för användaren om inga resultat kunde hittas vid adressökning. Ange {0} för att sätta in söktexten på önskad plats i meddelandet.
Adressök (fel) Meddelande som visas för användaren om det uppstår ett fel vid adressökning.
Adressök (timeout) Meddelande som visas för användaren om tidsgränsen överskrids vis adressökning.
Adressök (fråga om markör) Meddelande som visas för användaren om huruvida en markör ska sättas ut efter lyckad adressökning.
Ny markör
Ny markör (lyckad) Meddelande som visas för användaren efter lyckat adressuppslag vid ny markör.
Ny markör (ingen träfF) Meddelande som visas för användaren om inga resultat kunde hittas då ny markör placeras ut.
Ny markör (fel) Meddelande som visas för användaren om det uppstår ett fel då ny markör placeras ut.
Ny markör (timeout) Meddelande som visas för användaren om tidsgränsen överskrids då ny markör placeras ut.
Adressuppdatering
Uppdatering (lyckad) Meddelande som visas för användaren efter lyckat adressuppslag vid uppdatering av adress.
Uppdatering (ingen träff) Meddelande som visas för användaren omg inga resultat kunde hittas vid uppdatering av adress.
Uppdatering (fel) Meddelande som visas för användaren om det uppstår ett fel vid uppdatering av adress.
Uppdatering (timeout) Meddelande som visas för användaren om tidsgränsen överskrids vid uppdatering av adress.
Geokodningstjänst
Tjänst Välj vilken geokodningstjänst som ska användas.
Regionsbegränsning Begränsa sökning till en region (värdet ska vara en ccTLD (country code top-level domain), t.ex: 'se' för Sverige).
Resultatspråk Önskat språk på resultat (värdet ska vara en språkkod, t.ex.: 'sv' för Sverige).

Visningsalternativ

Egenskap Beskrivning
Standardcentrum (WGS84) Longitud och latitud för önskat kartcentrum när kartan laddas på formatet WGS84/EPSG:4326 (koordinater i decimaltal). T.ex. så ligger Stockholm centrum i koordinaten longitud = 18,0130436 och latitud = 59,3351497.
Visad projektion Förutsatt att Visa musens position är ikryssat, anger i vilket koordinatsystem koordinater ska presenteras. Standard är att använda kartans egna koordinatsystem. Ett vanligt värde är att använda EPSG:4326 som är det vanliga koordinatsystemet som känns igen från GPS-systemet.
Visa lagerväljare Ange om lagerväljaren ska visas.
Visa musens position Ange om musens position (koordinater) ska visas i kartan.
Visa skala Ange om aktuell skala ska visas i kartan.
Visa kartlänk Ange om en 'Permalink' ska visas på kartan (direktlänk till aktuell kartbild).
Visa kartöverblick Ange om en överblickskarta ska visas på kartan.
Standardzoom Ange kartans standardzoom (0 - 20). Antalet möjliga zoomnivåer beror bl.a. på typen av baslager som används.
Zooma till markörer Ange om kartan ska zooma till features i valt lager när kartan visas för första gången. Endast lager som kan innehålla markörer/features visas.
Kartdimensioner Kartans bredd och höjd.
Verktygsrad
Visa knapptexter Ange om texter ska visas bredvid knapparna. Knapparna kommer kräva mera utrymmer i verktygsraden men blir tydligare.
Visa hemknapp Ange om hemknappen ska visas. Om det är möjligt så kan användaren använda den för att ta sig tillbaka till standardcentrum och standardzoom.
Visa debug-knapp Ange om knappen för att visa debug-information för kartan ska visas. Observera att den endast bör vara synlig under konfiguration av fältet.
Visa sökfunktion Ange om sökfunktionaliteten ska visas. Observera att detta kräver att en geokodare, t.ex. Nominatim är aktiv.
Bredd sökruta Ange bredd på sökrutan.
Informationspanel
Visa markörlista Om en lista över markörer/features ska visas i kartans infopanel.
Visa legend Om en legend över features ska visas för lager som stödjer detta (t.ex. Rapportdefinitionslager) i kartans infopanel.
Bredd infopanel Ange bredd på infopanelen.

Exempel

I detta avsnittet ges exempel på konfiguration av olika karttyper.

Blandade karttyper

Konfigurationsmässigt är det möjligt att i samma karta definiera lager av olika typer. Detta är dock inte rekommenderat då kartan kan komma att få problem om lagrena använder sig av olika koordinatsystem. Dock är det faktiskt möjligt att kombinera Google Maps och OpenStreetMaps.

Båda Google Maps och OpenStreetMaps använder sig av ett projicerat koordinatsystem baserat på WGS84 (GPS) som approximerar jordgloben och gör den platt. WGS84 är i sig själv sfäriskt och en WMS-tjänst som använder sig av ett sfäriskt koordinatsystem kan inte kombineras med Google och/eller OpenStreetMaps.

OpenStreetMaps

Att presentera en karta baserad på OpenStreetMaps är enkelt. Stegen nedan görs under avsnittet Intern karta. Minst ett baslager måste finnas för att en karta ska vara funktionell. Nedan används lämpliga inställningar, för mer information om inställningens betydelse, se under respektive tabell.

  1. Kartinställningar - Inga ändringar behöver göras. Dessa inställningar är situationsbaserad och av avancerad natur. Se nedan för exempel.
  2. Kartlager
    1. Klicka på Nytt kartlager.
    2. Välj lagertypen OSM (OpenStreetMap).
    3. Allmänna inställningar
      1. Namn - Ange namn (namnet visas i eventuell lagerväljare).
      2. Aktivt - Ska vara ikryssat annars exkluderas lagret (exkludera endast i testscenarion).
      3. Visa i lagerväljare - Valfritt, om ikryssat så visas det i lagerväljaren. Lämpligt om flera bakgrundslager används.
      4. Synlig - Ska vara ikryssat om det ska vara det lager som är synligt som standard.
      5. Bakgrundslager - Är valt som standard och kan inte ändras.
      6. Avancerad inställningar - behöver inte anges.
    4. Lagertypsspecifika inställningar
      1. Url - Url som OSM ska används sig av vid hämtandet av kartbilder. Lämnt tomt (standardvärdet är oftast bäst).
      2. Antal zoomnivåer - Antal nivåer/steg för zoomning i kartan, 1-20 kan anges. Lämna tomt för att använda alla.
  3. Visningsalternativ - Redan nu kan kartan presenteras men oftast behöver vi göra ytterligare inställningar för att uppnå ett bra resultat, t.ex. så blir centrum för kartan mitt i Atlanten.
    1. Generellt
      1. Standardcentrum (WGS84) - Ange önskat kartcentrum när kartan laddas första gången.
      2. Standardzoom - Ange önskad zoom-nivå när kartan laddas första gången. Ta hänsyn till konfigurerade zoomnivåer på kartlagret (0: ingen zoom).
      3. Kartdimensioner - Ange önskad bredd och/eller höjd. Om bredd inte anges används 100% av tillgängligt utrymme.
    2. Vertygsrad
      1. Visa knapptexter - Ange önskat värde, mest pedagogiskt är att visa texter men knapparna tar mindre plats utan.
      2. Visa hemknapp - Om knapp för att återgå till standardcentrum och standarzoom ska visas.
      3. Visa debugknapp - Används endast i testläge, kryssa ur i produktion.
      4. Visa sökfunktion - Kryssa i för att visa adress-sökfunktionen.
    3. Informationspanel - Endast relevant om vektorlager för markörer visas.

Förkortningar

Förkortning Beskrivning
EPSG EPSG står för European Petroleum Survey Group och ansvarar för den etablerade databasen över koordinatsystem.
EPSG:3857 EPSG-standardens benämning av Spherical Mercator, en projektion som betraktar jordklotet som en sfär. Används av Google och OpenStreetMaps.
EPSG:4326 EPSG-standardens benämning av WGS84.
Latitud En koordinats position i öst-västlig riktning med nollmeridianen i Greenwich.
Longitud En koordinats position i nord-sydlig riktning med nollmeridianen vid ekvatorn.
OSM Förkortning för OpenStreetMaps, en öppen karttjänst.
WGS84 Förkortning för World Geodetic System 1984, det referenssystem som används för GPS.