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

Avstånd med WGS84

Hej!

Denna fråga gäller: ResRobots - Sök Resa-API och servicen: StationsInZone

Jag håller på att utveckla en hemsida för en kund som skall lista de N närmaste hållplatserna från en punkt. Därför använder jag mig av ResRobots - Sök Resa-API:t och dess funktion "StationsInZone". Eftersom jag inte var säker på att svaret kom i avståndsordning från servicen gjorde jag själv en enkel avståndsräknare som väldigt enkelt använder hypotagoras för att räkna ut avståndet utifrån hållplatsernas och utgångspunktens koordinater. Jag antar på detta sätt att jorden är platt men eftersom avstånden är relativt små (100-tals meter) så antar jag att felen som uppstår vid detta antagande är relativt små.

När jag testar min sida med att ta ut de 5 närmsta stationerna på 500m och 600m avstånd får jag olika svar. Den 5:te stationen är en annan efter att jag anropat tjänsten med 600m än med 500m. De stationer som är närmast inom 500m borde vara samma stationer som är närmast inom 600m också. Jag har 2 frågor:

  1. Gör jag helt bananas som räknar ut avståndet själv med hypotagoras? Jag vet att det inte stämmer på stora avstånd men avstånd på ca 50 m?

  2. När jag anropar tjänsten kommer svaret i en viss ordning, vilken ordning är det? Är det i avståndordning med den närmaste först? Om svaret kommer i någon sorts ordning är alla mina problem lösta.

Bästa hälsningar! / Simon

Kommentarer

  • Hej Simon!

    Innan jul, kommer jag tyvärr inte hinna reda ut om det är fel i underliggande system eller vad det är för ordning.

    Dock vad gäller att använda Pythagoras sats med WGS84, så bör det gå, men du behöver kompensera för vilken latitud du är på, då 1 grad öst-väst (longitud) är betydligt kortaren än en grad nord-syd (latitud) så här långt ifrån ekvatorn.

    Du kan testa med att begära ut RT90 istället, där det fungerar bra att använda Pythagoras, och jämföra resultaten.

    Alternativt så använder du "Vincenty":http://en.wikipedia.org/wiki/Vincenty's_formulae eller Haversine . Haversine är lite enklare och titta längst ner på wikipedia-artikeln så finns det färdiga implementationer.

    God jul

    / Lars

Kommentera eller skriv ett nytt inlägg

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