Wir haben eine große Datenbank für die Suche mitBreitengrad, Längengrad und Radius. Das Durchsuchen der gesamten Datenbank dauert lange. Wir wollen nicht die gesamte Datenbank durchsuchen, sondern nur einen bestimmten Bereich durchsuchen. Wir möchten den Bereich in die Tabelle einfügen, indem wir den Breiten- und Längengrad verwenden. pls schlagen jede mögliche Idee für schnelle nächste Suchtechnik vor.
Wie finde ich den gemeinsamen Bereich anhand von Breitengrad, Längengrad und Radius?
Wir müssen den gemeinsamen Bereich anhand von Breitengrad, Längengrad und Radius finden, um nur diesen Bereich und nicht die gesamte Datenbanksuche zu durchsuchen.
Antworten:
0 für die Antwort № 1Ich kenne mich mit Trigonometrie und MySQL ein wenig aus und empfehle Ihnen, diese Lösung auszuprobieren
SELECT * FROM Places WHERE acos(sin([givenlatitude]) * sin(Lat) + cos([givenlatitude]) * cos(Lat) * cos(Lon - ([givenlongitude]))) * 6371 <= [givenDistance];
Wobei 6371 der Erdradius ist.