0
私はMySQLでGISを使い始めました。MySQL GIS/Spatial Extensions - 私の脳を溶かす
私は、表「場所」作成した:私は、経度と緯度を持つテーブルとしてPHP座標更新テーブル
に挿入
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をso:
UPDATE `places` SET `longitude` = '".$longitude."', `latitude` = '".$latitude."', `coord` = GeomFromText('POINT(".$coord.")') WHERE `id` = '".$row->id."' LIMIT 1
これはすべてうまくいっているようですが、X座標に最も近い場所を見つけようとすると固くなります。 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;
永遠の感謝を事前に!
これを参照してください:http://dev.mysql.com/doc/refman/5.5/en/relations-on-geometry-mbr.html –
ええ、私はかなり同意しています。5.5では、より多くの空間的な機能がありますが、MyISAMテーブルタイプ(データベース上ではかなり大きな制約です)の場合のみです。 http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html – TheSteve0