0

ユーザーが探しているものを検索フィールドに入力できるデータベースを構築しています。ユーザーに最も近いものが最初に表示されるように結果をリストし、さらに先に進む必要があります。ユーザーの現在地から。

だから私はクエリで地理的位置を含める(因数分解する)方法を探しています。データベースには、それぞれの場所を含め、検索される多数のフィールドがあります。

このプロセス全体は、Google マップの場所検索 (つまり、「近くのレストラン」の検索) とよく似ています。

私はこの答えをグーグルで試してみました.他のフォーラムで質問しました.stackoverflowを検索しましたが、これを達成するための助けをまだ見つけていません.

4

1 に答える 1

1

MySQL Spatial Extensions を使用して、距離で結果を並べ替えることができます

http://dev.mysql.com/doc/refman/5.5/en/spatial-extensions.html

これにより、次のようなクエリを実行できます

SELECT name, AsText(location), SQRT(POW( ABS( X(location) - X(@center)), 2) + POW( ABS(Y(location) - Y(@center)), 2 )) AS distance 
FROM Points 
WHERE Intersects( location, GeomFromText(@bbox) ) 
AND SQRT(POW( ABS( X(location) - X(@center)), 2) + POW( ABS(Y(location) - Y(@center)), 2 )) < @radius 
ORDER BY distance; 

http://howto-use-mysql-spatial-ext.blogspot.com/

于 2012-07-26T20:50:06.940 に答える