2016-07-05 16 views
1

I Redis Geo bin mit finden Entfernung zwischen zwei Orten oder lat-longs, aber wenn ich das Ergebnis mit Google Distanzmatrix api vergleichen gibt es einen großen Unterschied zwischen dem Ergebnisse.Redis Geo - Liefert eine falsche Entfernung zwischen zwei Orten/Lat-Long-Positionen

Das ist mein Szenario:

Ran die in redis CLI follwing

  1. Ran diesen Befehl

    GEOADD Sicily 13.349350 38.272273 "Palermo" 15.089875 37.508123 "Catania" 
    
  2. diesen Befehl

    GEORADIUS Sicily 13.349350 38.272273 200 km WITHDIST 
    
  3. Ran

dieses Ergebnis erhielt

1) 1) "Palermo" 
    2) "0.0001" 
    2) 1) "Catania" 
    2) "174.8263" 

Redis sagt Catania 174,8263 km von Palermo ist.

Während Google api mit dem Abstand zwischen diesen beiden lat longs zu bekommen, erhalte ich ein anderes Ergebnis:

https://maps.googleapis.com/maps/api/distancematrix/json?units=metrics&origins=38.272273,13.349350&destinations=37.508123,15.089875 

Google sagt Catania 233 km von Palermo ist.

ich auch mongodb von $ geonear und das Ergebnis war ähnlich verwendet Redis:

MongoDB sagt Catania 174,971 km von Palermo ist.

glaube ich google Abstand richtig ist, so kann jemand bitte helfen Sie mir, was ich in Redis falsch mache. Gibt es eine andere Möglichkeit, die richtige Entfernung zu bekommen, wie ich redis verwenden möchte?

Antwort

2

, dass die Differenz zwischen dem direkten Abstand ist (das heißt in der Luftlinie) und die Entfernung von Landtransport (Straßen).

Für future reference:

enter image description here