====== Sted søgning ====== Denne service gør det muligt at hente en liste med steder, der alle opfylder et eller flere kriterier. Man kan søge "fritekst", eller på nøgleord eller efter steder i nærheden af en GPS position. ===== Fritekstsøgning ===== Fra version 1.0\\ Fritekstsøgning giver mulighed for at søge efter steder, der indeholder bestemte ord i deres navn, adresse, nøgleord eller anmeldelser. ==== URL ==== URL'en for at foretage en fritekstsøgning er: http://api.mitkbh.dk/[api version]/nodes/?search=[query] === Obligatoriske parametre === ^ Parameter ^ Type ^ Standard værdi ^ Mulige værdier ^ Beskrivelse ^ | **api version** | ''string '' | Ingen - skal specificeres | Se [[Versionering]] | Se [[Versionering]] | | **query** | ''string'' | Ingen - skal specificeres | Alle strenge | De(t) ord, der søges efter. Husk at specialtegn skal URL encodes | ==== Eksempler ==== ^ URL ^ Beskrivelse ^ | http://api.mitkbh.dk/1.x/nodes/?search=kaffe | Fritekst søgning efter //kaffe// | | http://api.mitkbh.dk/1.x/nodes/?search=%F8l | Fritekst søgning efter //øl// | ===== Nøgleordssøgning ===== Fra version 1.0\\ Nøgleordssøgning giver mulighed for at søge efter steder, der er blevet tilknyttet specifikkke nøgleord i tekst-form ((i modsætning til på selve sitet hvor der kan bruges ID'er i fx RSS feedsne)). ==== URL ==== URL'en for at foretage en nøgleordssøgning er: http://api.mitkbh.dk/[api version]/nodes/?tags=[tags] === Obligatoriske parametre === ^ Parameter ^ Type ^ Standard værdi ^ Mulige værdier ^ Beskrivelse ^ | **api version** | ''string '' | Ingen - skal specificeres | Se [[Versionering]] | Se [[Versionering]] | | **tags** | ''string'' | Ingen - skal specificeres | alle strenge | De(t) nøgleord, steder skal være tilknyttet Ved søgning på flere nøgleord så adskilles de af ; (semikolon). Husk at specialtegn skal URL encodes | ==== Eksempler ==== ^ URL ^ Beskrivelse ^ | http://api.mitkbh.dk/1.x/nodes/?tags=kaffe | Søger efter steder tilknyttet nøgleordet //kaffe// | | http://api.mitkbh.dk/1.x/nodes/?tags=kaffe;sol | Søger efter steder tilknyttet nøgleordene //kaffe// og //sol// | ===== Geografisk søgning (radius) ===== Fra version 1.0\\ Geografisk søgning giver mulighed for at søge efter steder, der ligger i nærheden af et punkt defineret ved en længdegrad og en breddegrad. Der bliver på nuværende tidspunkt leveret steder, der ligger inden for en radius af ca. 800 m. fra punktet. Hvis du har brug for at få en længdegrad og en breddegrad ud fra en adresse kan du bruge [[http://www.google.com/apis/maps/documentation/#Geocoding_HTTP_Request|Googles geocoding API]]. ==== URL ==== URL'en for at foretage en geografisk søgning er: http://api.mitkbh.dk/[api version]/nodes/?lat=[latitude]&lon=[longitude] === Obligatoriske parametre === ^ Parameter ^ Type ^ Standard værdi ^ Mulige værdier ^ Beskrivelse ^ | **api version** | ''string '' | Ingen - skal specificeres | Se [[Versionering]] | Se [[Versionering]] | | **lat** | ''float'' | ''0'' | -90 til 90 | Punktets breddegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | | **lon** | ''float'' | ''0'' | -90 til 90 | Punktets længdegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | ==== Eksempel ==== ^ URL ^ Beskrivelse ^ | http://api.mitkbh.dk/1.x/nodes/?lat=55.69066&lon=12.55829 | Leder efter steder i en radius af ca. 800 meter af positionen med breddegrad 55.69066 og længdegrad 12.55829 | ===== Geografisk søgning (boundary) ===== Fra version 1.1\\ Geografisk "boks" søgning giver mulighed for at søge efter steder, der ligger inden for en defineret kasse - eller **boundary**.\\ Der skal angives to punkter, hvorefter en rektangel bliver beregnet i API'en.\\ Du skal altså angive ''minlat,maxlon'' og ''maxlat,minlon'' \\ minlat,maxlon X----------------- | | | | | | | | | | | | -----------------X maxlat,minlon Dette kan fx bruges til Google Maps - eller deres nye Mapplets.\\ Der returneres samme data som i [[#Geografisk søgning (radius)]] dog med den forskel, at ''distance'' er afstanden til centrum af boksen. ==== URL ==== URL'en for at foretage en geografisk boks søgning er: http://api.mitkbh.dk/[api version]/nodes/?minlat=[latitude]&maxlon=[longitude]&maxlat=[latitude]&minlon=[longitude] === Obligatoriske parametre === ^ Parameter ^ Type ^ Standard værdi ^ Mulige værdier ^ Beskrivelse ^ | **api version** | ''string '' | Ingen - skal specificeres | Se [[Versionering]] | Se [[Versionering]] | | **minlat** | ''float'' | ''0'' | -90 til 90 | Punktets breddegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | | **maxlat** | ''float'' | ''0'' | -90 til 90 | Punktets længdegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | | **minlon** | ''float'' | ''0'' | -90 til 90 | Punktets breddegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | | **maxlon** | ''float'' | ''0'' | -90 til 90 | Punktets længdegrad. Skal være forskellig fra 0. Husk at bruge punktum og ikke komma ved decimalerne | ==== Eksempel ==== ^ URL ^ Beskrivelse ^ | http://api.mitkbh.dk/1.x/nodes/?minlat=55.1&maxlon=12.6&maxlat=55.8&minlon=12.1 | Leder efter steder inden den rektangulære boks (boundary) mellem punkterne breddegrad 55.1,længdegrad 12.6 til breddegrad 55.8,længdegrad 12.1 | ====== Sortering og begrænsning ====== Sted søgning kan modificeres ved hjælp af en række frivillige parametre, der giver muliged for at sortere i og begrænse søgeresultaterne, der virker for både fritekst søgning, tag søgning og geografisk søgning. ==== Frivillige parametre ==== ^ Parameter ^ Type ^ Standard værdi ^ Mulige værdier ^ Beskrivelse ^ | **nodetype** | ''integer'' | ''0'' (alle kategorier) | ''0-x'' (pt er 10 max) | Afgrænsning af [[#Kategorier|kategori]] | | **orderby** | ''string'' | ''RELEVANCE'' | ''RELEVANCE|DISTANCE((DISTANCE virker kun når man søger på koordinater og kan her bruges i stedet for RELEVANCE)), RATING, WEIGHTED, NAME, TYPE'' | Dette angiver hvordan resultaterne skal sorteres. Se [[#Sortering|nedenstående forklaring]] | | **limit** | ''integer'' | ''1000'' | ''1-x'' | Begrænsning af antal resultater | === Sortering === Her kommer en lidt uddybende forklaring på **orderby** parameteren. ^ Værdi ^ Beskrivelse ^ | RELEVANCE | Sortér efter en beregnet relevans. Sortering sker fra mest til mindst relevante på samme måde som normale søgninger på www.mitkbh.dk | | DISTANCE | Sortér efter afstand til en givet punkt. DISTANCE virker kun når man søger på koordinater og kan her bruges //i stedet for// RELEVANCE. Bemærk at [[#Svar ved geografisk søgning|afstanden til punktet]] returneres som en del af svaret. | | RATING | Sortér efter vurdering uanset antal stemmer | | WEIGHTED | Sortér efter en vægtet vurdering. Det er en Bayesian vægt der laves - og stedet skal have **minimum 5 stemmer** for overhovedet at komme i betragtning! Dvs. alt under 5 stemmer bliver automatisk frasorteret. Bemærk at den [[#Svar ved sortering efter vægtet vurdering|vægtede vurdering]] returneres, som en del af svaret. | | NAME | Sortér alfabetisk efter navnet på stedet. A kommer først | | TYPE | Sortér efter nodetype. Rækkefølgen er defineret i mitKBH systemet, og er samme rækkefølge som [[http://www.mitkbh.dk|vores menu]] vises i (spisesteder, cafeer, take away ...). | === Kategorier === Kategorierne du kan søge inden for igennem **nodetype** parameteren er: ^ Id ^ Kategori ^ | 0 | Alle kategorier | | 1 | Klubber | | 2 | Caféer | | 3 | Scene | | 4 | Barer | | 5 | Steder | | 6 | Take away | | 7 | Spisesteder | | 10 | Butikker | Lad være med at spørge hvad der blev af 8 og 9 :). ==== Eksempler ==== ^ URL ^ Beskrivelse ^ | http://api.mitkbh.dk/1.x/nodes/?search=kaffe&nodetype=2 | Søger på //kaffe// i kategorien //Cafeer// | | http://api.mitkbh.dk/1.x/nodes/?search=kaffe&nodetype=2&limit=20 | Søger på //kaffe// i kategorien //Cafeer// og returnerer max 20 resultater | | http://api.mitkbh.dk/1.x/nodes/?search=kaffe&nodetype=2&limit=20&orderby=RELEVANCE | Søger på //kaffe// i kategorien //Cafeer// og returnerer de 20 mest relevante resultater i sorteret rækkefølge | | http://api.mitkbh.dk/1.x/nodes/?tags=n%F8rrebro;kaffe&nodetype=2 | Søger efter steder tilnyttet de to nøgleord //Nørrebro//((Bemærk at ordet er URL encoded)) OG //kaffe// i kategorien //Cafeer// | | http://api.mitkbh.dk/1.x/nodes/?lat=55.69066&lon=12.55829&orderby=DISTANCE | Søger efter steder i nærheden af punktet med længedegrad 55.69066 og breddegrad 12.55829 sorteret efter deres afstand til dette punkt | Klik på eksempel-linksne for at se hvad de returnerer. ====== XML svar====== Eksempel på resultat for http://api.mitkbh.dk/1.x/nodes/?search=Atame 2 2 43 Atame
Blågårdsgade 3
55.687746159518824 12.559905052185059 Spisesteder 4.4211 19 ...<b>Atame</b> er et super sted. Maden er hjemmelavet, god og billig. Øllet flyder og maden kommer i en lind
===== Svar ved geografisk søgning ===== Ved søgning på geografisk placering resulterer i lidt ekstra information med for hver node i XML resultatet: 0.0835 84m Distance skal dog tages med et gran salt. Det er i **luft linie** og ikke vildt præcist, men en god indikator på afstanden mellem to punkter. ===== Svar ved sortering efter vægtet vurdering ===== Her vises rating->score og rating->votes ved en normal søgning. 5.2353 17 Når et søgeresultat skal sorteres efter vægtet vurdering tilføjes rating->weighted: 5.2353 17 4.9228636363636 Den kommer kun med når vægtet rating, fordi den er ret tung at beregne.