2008-05-30, 12:11
  #1
Medlem
Jag håller på att utveckla en location based service i J2ME. Jag har ett område med koordinater. Användaren startar på en viss koordinat. Koordinaten skickas till en server som returnerar alla koordinater där det finns tjänster inom ett område med en bestämd radie. Användaren kan röra på sig och efter att användaren rört sig en bestämd sträcka skall nya koordinater sändas till användaren. Om användaren befinner sig i ett tidigare område och sträckan är nådd fås en skärning mellan två eller flera områden. De koordinater som redan skickats till användaren skall inte skickas igen.

Tanken är användaren enbart skickar den nya positionen, vilket medför att servern där beräkningarna sker kommer att hålla reda på tidigare koordinater som motagits under sessionen.

Vad jag behöver hjälp med är en metod för att veta vilka koordinater som skall sändas av servern.

Min beskrivning kan vara något vag och komplicerad så fråga om det är något som är oklart.

Observera att jag inte behöver hjälp med kodningen utan matematiken. Därför postade jag i detta forum.
Citera
2008-05-30, 23:17
  #2
Medlem
Zaxxons avatar
Citat:
Ursprungligen postat av jockemedfoten
Om användaren befinner sig i ett tidigare område och sträckan är nådd fås en skärning mellan två eller flera områden. De koordinater som redan skickats till användaren skall inte skickas igen.

Tycker det verkar vara ett smått trivialt problem, men då har jag inte förstått vad du menar med ovanstående: "och sträckan är nådd." Vilken sträcka?


Är det inte bara att kolla avstånden från varje "basstation" till användaren? Det handlar väl om radiella avstånd, och du vet koordinater för varje basstation och användarens koordinat. Då kan du beräkna om användaren befinner sig inom området för en specifik basstation.

Låt (xi,yi) vara koordinat för station i, och användaren befinner sig på position (a,b)
Kod:
for i=1 to antalet_stationer
  if sqrt((xi-a)^2+(yi-b)^2)<Ri  //där Ri är radie för den i:te basstationen
  {
      Användaren är inom räckhåll för basstattion i
   }
   else
   {
      Basstation i är utom räckhåll
   }
end for
__________________
Senast redigerad av Zaxxon 2008-05-31 kl. 00:14.
Citera
2008-06-02, 09:48
  #3
Medlem
Tack för lösningen. Var inte riktigt så problemet var, men lösningen går att applicera även på mitt problem.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in