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 1).

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 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 kategori
orderby string RELEVANCE RELEVANCE|DISTANCE2), RATING, WEIGHTED, NAME, TYPE Dette angiver hvordan resultaterne skal sorteres. Se 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 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 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 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ørrebro3) 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

<?xml version="1.0" encoding="utf-8"?>
<response status="ok">
  <nodesearchresult>
    <resultsreturned>2</resultsreturned>
    <resultsfound>2</resultsfound>
    <nodes>
      <node>
        <id>43</id>
        <name>Atame</name>
        <address>
          <street>Blågårdsgade 3</street>
        </address>
        <position>
          <latitude>55.687746159518824</latitude>
          <longitude>12.559905052185059</longitude>
        </position>
        <nodetypes>
          <nodetype id="7" primary="true">Spisesteder</nodetype>
        </nodetypes>
        <rating>
          <score>4.4211</score>
          <votes>19</votes>
        </rating>
        <teaser>...&lt;b&gt;Atame&lt;/b&gt; er et super sted. Maden
        er hjemmelavet, god og billig. Øllet flyder og maden kommer
        i en lind</teaser>
      </node>
      <!-- flere resultater -->
    </nodes>
  </nodesearchresult>
</response>

Svar ved geografisk søgning

Ved søgning på geografisk placering resulterer i lidt ekstra information med for hver node i XML resultatet:

<distance>
  <kilometer>0.0835</kilometer>
  <textual>84m</textual>
</distance>

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.

<rating>
  <score>5.2353</score>
  <votes>17</votes>
</rating>

Når et søgeresultat skal sorteres efter vægtet vurdering tilføjes rating→weighted:

<rating>
  <score>5.2353</score>
  <votes>17</votes>
  <weighted>4.9228636363636</weighted>
</rating>

Den kommer kun med når vægtet rating, fordi den er ret tung at beregne.

1) i modsætning til på selve sitet hvor der kan bruges ID'er i fx RSS feedsne
2) DISTANCE virker kun når man søger på koordinater og kan her bruges i stedet for RELEVANCE
3) Bemærk at ordet er URL encoded
 
stedsogning.txt · Sidst ændret: 2008/08/31 21:01 (ekstern redigering)
 
Med mindre andet angivet, vil indhold på denne wiki blive frigjort under følgende licens:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki