Я новичок в ГИС в MySQL, и это растопило мой мозг!
Я создал таблицу «мест», как показано ниже:
CREATE TABLE `places` (
`id` int(6) unsigned zerofill NOT NULL auto_increment,
`business_name` varchar(100) NOT NULL,
`street_postcode` varchar(10) NOT NULL,
`longitude` decimal(22,20) NOT NULL,
`latitude` decimal(22,20) NOT NULL,
`coord` point NOT NULL,
UNIQUE KEY `id` (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=25080 DEFAULT CHARSET=utf8
id, business_name и street_postcodeвставил в таблицу
Затем я обновил таблицу с помощью координат долготы и широты в PHP следующим образом:
UPDATE `places` SET `longitude` = '".$longitude."', `latitude` = '".$latitude."', `coord` = GeomFromText('POINT(".$coord.")') WHERE `id` = '".$row->id."' LIMIT 1
Кажется, что все прошло хорошо, но я застрял при попыткенайти ближайшее место к координатам X.Как мне найти 10 ближайших мест к Х долготе и широте?
Это не похоже на работу:
SELECT business_name, street_postcode, ROUND(GLength(LineStringFromWKB(LineString(AsBinary(coord), AsBinary('51.49437081 -0.2275573')))))
AS distance FROM places ORDER BY distance ASC LIMIT 10;
Вечная благодарность заранее!