lbsクエリーmysql実装
1728 ワード
詳細
データベース・テーブル・インデックスはMyISAMでなければなりません.
スペースインデックス:
挿入データ:(注:ここでポイント(緯度、経度)標準表記)
検索:検索(30.60,076104.067221)付近10キロ
mysql関数大全:
http://www.cnblogs.com/waterystone/p/5606423.html
データベース・テーブル・インデックスはMyISAMでなければなりません.
CREATE TABLE address (
address CHAR(80) NOT NULL,
address_loc POINT NOT NULL,
PRIMARY KEY(address)
)ENGINE=MyISAM;
スペースインデックス:
ALTER TABLE address ADD SPATIAL INDEX(address_loc);
挿入データ:(注:ここでポイント(緯度、経度)標準表記)
INSERT INTO address VALUES('Foobar street 12', GeomFromText('POINT(30.620076 104.067221)'));
INSERT INTO address VALUES('Foobar street 13', GeomFromText('POINT(31.720076 105.167221)'));
検索:検索(30.60,076104.067221)付近10キロ
SELECT *
FROM address
WHERE MBRContains
(
LineString
(
Point
(
30.620076 + 10 / ( 111.1 / COS(RADIANS(104.067221))),
104.067221 + 10 / 111.1
),
Point
(
30.620076 - 10 / ( 111.1 / COS(RADIANS(104.067221))),
104.067221 - 10 / 111.1
)
),
address_loc
)
mysql関数大全:
http://www.cnblogs.com/waterystone/p/5606423.html