Wir haben 2 Tabellen, die Reiseanfragen eine für Kunden und eine vom Fahrer speichern. Wir müssen den Fahrern, die die MYSQL 5.7 GIS-Funktion verwenden, den Fahrern und nächsten Kunden die nächstgelegenen Fahrer zeigen.Berechnung der nächsten Orte mit Mysql GIS-Funktionen
Beide Tabellen speichern den Breiten- und Längengrad der Anforderungen.
Also, wenn ein Fahrer eine Reise anfordert, möchte ich Entfernungen berechnen und die nächsten Kunden in 10km Umkreis und ihre Standorte dem Fahrer aus der Kundenanfrage Tabelle zeigen.
Ich versuchte die st_distance_sphere
, die gut für (Point,Point)
funktioniert. Aber wenn ich eine multipoint
und eine point
gebe, gibt es Null zurück.
Shoudnot multipoint,point
zurück Strecken zwischen allen Punkten auf dem ersten Platz auf den Punkt auf dem 2. Platz?
Bitte korrigieren Sie, wenn ich falsch liege. Die Abfrage, die ich versuchte, ist unten.
SELECT
round(
st_distance_sphere(
st_geomfromtext(
'Multipoint(72.87765590000004 17.385044,73.8567436 18.5204303)'
),
st_geomfromtext(
'POINT (73.8567436 18.5204303)'
)
)
) as dist;
Ich nahm an, es gibt Entfernungen zu allen Punkten. Wie könnte ich Entfernungen zu allen Punkten bekommen? Ich meine jede Funktion, die verfügbar ist? – coderunner
Bitte beachten Sie das Update – e4c5
ja, die obige Abfrage wird es tun (mit some_point_field ist die letzte bekannte Position von jedem Taxi (existiert als Zeilen in der Tabelle)). Vielleicht möchten Sie auch sehen, ST_Within – e4c5