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 PunktAlle 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.