Fragen Sie Punkte innerhalb eines bestimmten Radius in MySQL ab

Ich habe die folgende MySQL-Tabelle erstellt, um Breiten- / Längengradkoordinaten zusammen mit einem Namen für jeden Punkt zu speichern:

CREATE TABLE `points` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL,
  `location` point NOT NULL,
  PRIMARY KEY (`id`),
  SPATIAL KEY `location` (`location`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Ich versuche abzufragen:

alle Punkte innerhalb einesn Meilenradius eines gegebenen Punktes;die Entfernung jedes zurückgegebenen Punktes vom angegebenen Punkt

Alle Beispiele, die ich gefunden habe, beziehen sich auf die Verwendung eines minimalen Begrenzungsrechtecks (MBR) anstelle eines Radius. Die Tabelle enthält ungefähr 1 Million Punkte, daher muss diese Anforderung so effizient wie möglich sein.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage