» »

[PHP] Razdalja med dvema koordinatama

[PHP] Razdalja med dvema koordinatama

tx-z ::

Uporabil sem tole formulo za izračun razdalje med dvema koordinatama
function vincentyGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){
  $earthRadius=6372797;
  $latFrom = deg2rad($latitudeFrom);
  $lonFrom = deg2rad($longitudeFrom);
  $latTo = deg2rad($latitudeTo);
  $lonTo = deg2rad($longitudeTo);

  $lonDelta = $lonTo - $lonFrom;
  $a = pow(cos($latTo) * sin($lonDelta), 2) +
    pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
  $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);

  $angle = atan2(sqrt($a), $b);
  //return $angle * $earthRadius;
  return number_format(($angle * $earthRadius) / 1000, 3, '.', '');
}


Kar mi vrne nekaj, kar ne vem kaj je. Če vnesem iste koordinate za prvo in drugo točko dobim distanco ~1119km. Razdalja bi morala biti blizu 0.0km. Je kdo že delal kaj podobnega in ma kakšno rešitev, ki deluje?
tx-z

Yacked2 ::

a gre za prostor v ravnini ali v prostoru ?
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Roadkill ::

Poglej si tole kodo za referenco:
http://www.johndcook.com/python_longitu...

Teli tvoji kvadrati mi ne grejo v račun.
Ü

tx-z ::

Identično vrne 1119 km
tx-z

tx-z ::

Uff, sintaktični škrat v kodi :) latitude v to sm mu napačno dajal..No sej pol to je to; če pa kdo dobi še kakšno bolšo varianto se pa priporočam.
tx-z

Roadkill ::

#!/usr/bin/python
import math

def distance(lat1, lon1, lat2, lon2):
    radius = 6371

    dlat = math.radians(lat2-lat1)
    dlon = math.radians(lon2-lon1)
    a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
    b = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
    

    return radius * b


Meni tole dela prav.
Ü


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java[kotne funkcije]

Oddelek: Šola
5503 (459) Mesar
»

C# NMEA podatki iz GPS-ja

Oddelek: Programiranje
10792 (593) krneki0001
»

[C#]Analogna ura

Oddelek: Programiranje
152337 (1974) cekr
»

WPF 3d prostor - Spotlight, ne znam uporabljat

Oddelek: Programiranje
161500 (1260) Tutankhamun
»

Javascript problem

Oddelek: Izdelava spletišč
61074 (938) fx

Več podobnih tem