Till senaste kommentaren
Detta inlägg är gammalt och kan innehålla inaktuell information.

Sökning på adresser eller andra icke-existerande stationer i ResRobot ger oväntat svar

Hej!

Vi använder ResRobot samt Google Places för att med hjälp av användarens input presentera förslag på addresser eller stationer. Nu har vi problemet att ResRobot inte verkar kunna hantera en sökning på addresser. Vi vet att det inte finns addresser i ResRobot, det är inte det som är problemet. Problemet är att ResRobot "find location" väljer att presentera 30 st helt galna förslag istället för det förväntade: inga / väldigt få relevanta förslag.

Har ni hört om detta? Kommer detta att kunna åtgärdas?

Googles API t.ex. svarar inte med 30 helt galna förslag när man söker på stationer, utan ger istället inga eller få relevanta svar.

Här ett exempel:

Input: "Regeringsgatan 20"

Suggestion:
"Arvika Jakobsgatan 20"
"Degernäs 2 (Umeå kn)"
"Enköping Bergsgatan 21"
"Karlstad Gelinsgatan"
"Nyland Strandvägen 20"

Kommentarer

  • Hej!

    Anropa inte FindLocation med en adress utan ett hållplatsnamn. Det kan verka förvirrande men det är utvecklat så att det ska visa hållplatser baserat på hållplatsnamnet och skickar du in en adress blir svaret konstigt som du ser. Åtgärd på detta är inte inplanerat. Vi tar med oss detta inför framtiden. Tack för inputen.

    /Martin

    Team Trafiklab
  • Hej. Tack för svaret. Men hur ska vi veta om user input är en adress eller station menar du?

    Mvh Joel?

  • Hej!

    ResRobot, appen, använder sig av Navteq för att matcha adresser med hållplatser. Det är under licens och inget vi kan lämna ut. Du kanske kan undersöka närmare om det eller något liknande kan hjälpa dig då ResRobot inte är implementerat så idag.

    https://www.here.com/sweden/stockholm/street-sq...

    /Martin

    Team Trafiklab
  • Hej!

    Nu förstår jag inte riktigt. Du skrev

    "Anropa inte FindLocation med en adress utan ett hållplatsnamn"

    jag frågade då hur vi ska kunna avgöra om en användare skrivit in en address eller en station, underförstått att det ju inte går att veta det. Det finns ju stationer som heter "kungsgatan" och addresser som heter "kungsgatan" också, så vi måste ju skicka input-strängen till både Googles API och till ResRobot eftersom det "rätta svaret" enbart kommer finnas i ett av APIerna.

    Problemet är inte att vi saknar rätt svar i vår drop-down lista med förslag som vi visar för slutanvändaren, utan att ResRobot APIet fyller upp den listan med 30 helt irrelevanta förslag varje gång slutanvändaren söker på en address.

    Detta är för att ResRobot har ett felaktigt beteende: Istället för att returnera en tom lista när det inte finns några relevanta matchningar så returnerar ResRobot massa irrelevanta matchningar. Varför? Vad finns det för anledning att returnera massa skräp?

    Om någon frågar mig vad klockan är och jag inte vet svaret, då säger jag "jag vet inte", medans ResRobot skulle svara "11.23! 21:18! eller 04:40 kanske? 23:20? Prova 19:30!"

    ja du förstår.....

  • Hej Joel,

    vet inte om det hjälper. Men vi har löst det genom att kategorisera förslag som ges till användaren själv. Förslag som är stationer markeras i våra svar som det, adresser markeras som just adresser eller poi. Baserat på det väljs olika vägar att anropa reseplaneraren.

  • Tack för svaret Johan, uppskattas starkt, men tyvärr pratar vi om olika saker här tror jag.

    Vi har ett input fält. Vi vill ge autofill-förslag. Om användaren skriver "sluss.." så ska vi visa "Slussen" alltså en station som förslag. Men om användaren skriver "Regeringsg..." så vill vi visa upp "Regeringsgatan" som förslag, alltså en address. Helst utan att användaren ska behöva markera i ett extra fält om hen söker på en address eller station.

    Eftersom ResRobot inte innehåller den data man förväntar sig (jmf SL = både stationer och addresser) så måste vi utöver anropet till ResRobot "FindLocation" även anropa Google Places API för att få autofill-förslag på addresser.

    Vi skickar därför in användarens input i båda Googles API och ResRobots "FindLocation". Vi hittar då garanterat det som användaren tänker på i något av de två APIerna, nemas problemas. Vi visar upp samtliga förslag för användaren i "autofill"-dropdownen.

    Om användaren söker en station är det inga problem, då visar vi upp några förslag på stationer och knappt något alls från Google eftersom Google inte hittar någon data som matchar stationsnamnet. Google har ju bara adresser.

    MEN! Om användaren söker på en adress så får vi upp några bra adress-förslag från Google samt 30 helt värdelösa förslag från ResRobot (se mitt tidigare inlägg för exempel). Detta gör det svårt att hitta det man vill ha i autofill-dropdownen.

    Frågan är: varför returnerar ResRobot 30 värdelösa förslag när det uppenbarligen inte finns någon matchande data i resrobot. Den borde istället returnera ingenting! Precis som Google gör!

    hmm... jag vet inte hur jag ska kunna förklara det här tydligare, det är lite frustrerande... Hoppas att det går att förstå nu?

    Mvh Joel

  • Hej Joel (och Johan),

    Tack Johan för att du försöker hjälpa Joel på traven.

    Ursäkta att jag lägger mig i, men jag tycker att den här frågan tar upp oproportionellt mycket tid.

    Om du Joel vill att användarna av Er applikation skall kunna skriva in en adress måste ni hitta en annan väg till informationen då metoden Findlocation endast levererar hållplatser då Resrobots gaturegister ej är publikt (använder sig av Navtek).

    Vad metoden Findlocation gör, är att den försöker tolka givet input mot alla hållplatsnamn i Sverige (det kan bli tokigt ibland) enligt någon algoritm, och de svar som du erhåller är de närmaste (när du skriver Regeringsgatan 20 kan matchningen vara på gatan eller 20 eller...). Metoden Findlocation markerar ett av alternativen som troligen den bästa matchning.

    Jag tycker inte att du behöver förklara frågan tydligare Joel, men vi kan inte ändra vår metod för att passa din applikation.

    Ett förslag som jag har är att du skriver i Ert app- gränssnitt att det endast är hållplatsnamn som skall skrivas in i gränssnittet (och inte adress).

    Ett annat alternativ är att söka eftersökt funktion utanför Trafiklab, där har Martin tidigare föreslagit att ni tar en titt Navtek, ett annat alternativ kan vara OpenStreetMap.

    Med vänlig hälsning, Åke

    Team Trafiklab
  • Förlåt men uppenbarligen måste jag skriva tydligare eftersom ni flera gånger om svarar på fel frågor. Jag har sagt upprepade gånger att vi använder Google för adresser så ni behöver INTE föreslå Navtek igen.

    Jag ville enbart påpeka en svaghet i ResRobot men ni verkar fortfarande inte köpa att det är en svaghet.

    Svagheten är:

    När man anropar ResRobot verkar det inte finnas någon lägsta gräns för hur bra matchning en station måste vara för att få vara med i responset. Det är ett problem! Andra APIer har INTE detta problem. I andra APIer får man 0 svar om man skrivit in nonsens. I ert API får man 30 värdelösa svar istället. Jag ville bara hjälpa er genom att påpeka denna svaghet, INTE kräva att ni ska ändra hela ert API efter MIN app.

    snälla... jag är inte dum i huvvet.

    Ni behöver inte åtgärda problemet.... men det är de fakto ett problem.

    Over and out.

  • Hej!

    Tack för inputen

    /Martin

    Team Trafiklab

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.