Søg i Septima Widget K
Konfliktsøgning
Foretag en konfliktsøgning på f.eks. en adresse, et klik i kortet eller brugerens aktuelle position.
Konfliktsøgnigen sker ved, at der kaldes en service, der returnerer resultatet. Resultatet vises i en liste.
Options
Herunder findes en beskrivelse af de enkelte egenskaber, der kan angiver til denne funktion.
disable
- Type:
boolean
- Default:
false
Skal kontrollen deaktiveres. Herved fungerer det, som om kontrollen ikke var tilføjet. Kan bruges til midlertidig at fjerne en kontrol.
detach
- Type:
string
Angiv en reference til et alternativ html-element, som denne kontrol skal vises i. Det kan benyttes til at placere indholdet af en kontrol et andet sted på sin side. Hvis detach har værdien "abc"
, så skal der tlføjes et element til HTML'en på denne form: <div data-widget-detach="abc"/>
. Hvis elementet ikke findes, så fungerer kontrollen, som hvis detach ikke var angivet.
css
- Type:
string | string[]
Angiv en sti til en css-fil, der skal loades efter denne kontrol. Herved vil det være muligt at lave en brugertilpasset style af kontrollen.
className
- Type:
string
Tilføj en speciel CSS class til elementet. Dette kan bruges til at styre hvordan elementet ser ud eller placeres på siden.
title
- Type:
string
Gør elementet mere tilgængeligt.
template
- Type:
string | object
Angiver den html-template, der anvendes til at præsentere resultater. Hvis ikke angivet, så vises listen uden overskrift og formatering. Med template kan man styre det, der ligger uden om listen. Det kunne være en overskrift samt en forklarende tekst. Læs mere om templates generelt her. For denne template er der to tilgængelige attributter; <%= title %>
og <%= content %>
, hvor <%= title %>
benyttes til at skrive, hvor ruten starter, mens <%= content %>
er dér, hvor listen indsættes. De enkelte rækker i listen styres af template_route på laget.
target
- Type:
object[]
Angiver en liste af services, der skal kaldes. Læs mere her.
highlight
- Type:
boolean
- Default:
false
Skal det fundne markeres i kortet? Dette er specielt hensigtsmæssigt, når eventtype er "mapclick", men kan også bruges i andre situationer. Denne mulighed er ikke optimal, når der bruges flere targets.
zoomOptions
- Type:
object
Bruges kun, når "highlight" er sat til true. Hvis angivet, så zoomes der til objektet med den angivede metode. sæt evt. "preventZoom" på "search" for at undgå at de begge zoomer. Læs mere om zoomOptions her.
inMap
- Type:
boolean
- Default:
false
Skal resultatet vises oven på kortet som en normal infoboks.
closeButton
- Type:
boolean
- Default:
false
Vis en lukknap i infoboksen. Når brugeren klikker på knappen, lukkes boksen og markeringen fjernes. Dette er specielt anvendeligt i kombination med inMap
.
features_style
- Type:
object | object[]
Bruges kun, når "highlight" er sat til true. Her er det muligt at angive, hvordan markeringen skal styles i kortet. Læs mere om features_style her.
eventtype
- Type:
string | string[]
- Default:
featureadded
Typen af interaktionen. Gyldige værdier: "featureadded", "featureselected" (tidligere "click") eller "mapclick". Ved "featureselected" aktiveres konfliktsøgningen, når der klikkes på en vektorfeature i kortet. Ved "featureadded" aktiveres konfliktsøgningen, når andre funktioner tilføjer noget til kortet. Det kan for eksempel være søgefunktionen. Dog aktiveres konfliktsøgningen ved søgning på lokale data ved "featureselected", da det, der sker er at featuren vælges i kortet. Ved "mapclick" aktiveres konfliktsøgningen, når brugeren klikker et sted i kortet.
simplifyInputToPoint
- Type:
boolean
- Default:
false
Når der søges, bruges en geometri som input. Nogle services har en begrænsning på, hvordan de kan kaldes. Det kan for eksempel være, at URL'en kan blive for lang, hvis den geometri, der søges med, er stor. Derfor er det muligt at angive "simplifyInputToPoint", der gør, at inputgeometrien konverteres til et punkt, inden det sendes afsted til servicen.
queryFilter
- Type:
boolean | string
- Default:
true
Filtre når et inputobjekt skal aktivere en konfliktsøgning. Det vil typisk være en template, der angives. Læs mere om templates her.
Hvilke data skal der søges i
Opsætningen til hver enkelt target.
host
- Type:
string
En URL til den service, der skal kaldes. I URL'en vil <%= wkt %>
blive erstattet med en WKT-streng for det, der laves konfliktsøgning med. Tilsvarende vil <%= x %>
og <%= y %>
blive erstattet med centroiden for objektet.
Mulige parametre er: <%= wkt %>
, <%= x %>
, <%= y %>
, <%= buffer %>
, <%= zoom %>
, <%= resolution %>
, <%= minx %>
, <%= maxx %>
, <%= miny %>
og <%= maxy %>
.
Derudover er det muligt at tjekke på hvilken eventtype der har aktiveret konfliktsøgningen. Det gøres ved at bruge <%= event %>
, der har værdien mapclick
, hvis brugeren har klikke i kortet, eller featureadded
hvis eventet kommer via en markering fra f.eks. søgefeltet. Dette kan bruges til at differentiere kaldet afhængigt af hvad brugeren har gjort.
Hvis konfliktsøgningen aktiveres via søgefeltet, er der også muligt at benytte oplysinger herfra til at danne URL'en med. Herved kan konfliktsøgningen ske ved en kombination af geometri og/eller attributværdier. Det kan f.eks. være at man vil bruge ejerlavskoden fra "dawa" til at lave konfliktsøgningen med. Dette gøres ved at benytte <%= properties.ejerlav.kode %>
. Eller hvis man søger på lokale data i søgefeltet, så kan man få adgang til et id via <%= properties.id %>
. Dette kræver altså lidt viden om de data, der søges i samt at den service man benytter, understøtter andet end blot et grometrisk filter.
type
- Type:
string
Elementet 'type' angiver typen af servicen. Gyldige værdier: geojson
, esrijson
, datasourcejson
, spatialqueryjson
, json
, djangojson
og local
. Derudover er det muligt at have værdien text
, der blot sætter værdien af "template" ind. Dette kan f.eks. bruges til at indsætte en fast overskrift eller et "Læs mere" link.
Bemærk
Ved typen local
foretages der kun konfliktsøgning på de features der er hentet. Det betyder at denne form for konfliktsøning ikke egner sig til lag, der f.eks. benytter loadingstrategy.
Ved typen local
skal layer
angives for at definere hvilket lag, der indeholder data.
dataType
- Type:
string
- Default: 'json'
Hvordan returneres data. Kan antage en af følgende værdier: "jsonp" og "json". Brug "json", hvis servicen ligger på samme domæne eller leveres med CORS-header.
paramNames
- Type:
object
Det er muligt at angive en række parametre til den URL, der er angivet i host
. I dette eksempel kan man enten kalde siden med denne widget med URL-parameteren =?planid=1234
. Alternativt kan man på DIV
elementet angive attributten data-widget-planid="1234"
:
json
"paramNames": {
"key": "planid"
}
template
- Type:
string | object
Her angives en html-skabelon for, hvorledes en eventuel tilhørende tekst skal præsenteres. Attributter fra data kan angives i html-skabelonen med følgende notation <%= attributnavn %>
. Læs mere om templates generelt her.
className
- Type:
string
Tilføj en speciel CSS class til elementet. Dette kan bruges til at styre hvordan elementet ser ud eller placeres på siden.
layers
- Type:
object[]
En liste med lag, der skal tændes når konfliktsøningen får et hit. Derudover bruges det til at "mapclick" kun udfører konfliktsøgningen, hvis et eller flere af de angivede lag, er tændte.
layer
- Type:
string
Når type
er local
benyttes denne parameter til at definere et ID på det lag, der indeholder de data, der skal søges i.
template_nohit
- Type:
string | object
Her angives en html-skabelon for, hvorledes en eventuel tekst skal præsenteres når der ikke er nogen hits. Dette kan bruges til at få fuld kontrol pver hvad der skal vises når konfliktsøgningen ikke finder noget. Hvis angivet, så ignoreres nohitmessage
. Attributter fra konfigurationen af dette target, kan angives i html-skabelonen med følgende notation <%= attributnavn %>
Læs mere om templates generelt her.
nohitmessage
- Type:
string
Den tekst, der vises, hvis servicen returnerer en tom liste.
errormessage
- Type:
string
Den tekst, der vises, hvis servicen fejler.
nolayermessage
- Type:
string
Den tekst, der vises, hvis et relateret lag (layers
) ikke er vist.
Eksempler
Eksempler, der bruger denne komponent: