1

私は、地図上の特定のポイントを検索するコードを少し書き込もうとしていますが、コンパス方位の特定の弧内にあります。

たとえば、45 度 (北東)、両側 20 度です。

これまでのところ、特定の半径で結果を得る SQL コマンドを取得しました。方向にフィルターする方法について助けが必要です。

SELECT * FROM (SELECT `place1_id`, `place2_id`, ( 6371 * acos( cos( radians(search_latitude) ) * cos( radians( `location_lat` ) ) * cos( radians( `location_long` ) - radians(search_longitude) ) + sin( radians(search_latitude) ) * sin( radians( `location_lat` ) ) ) ) AS `distance` FROM `place` ORDER BY distance) AS `places` WHERE `places`.`distance` < search_radius AND `places`.`place2_id` = ?

これを(可能であれば)すべてSQLで実行できますか、それともPHPを少し適用する必要がありますか?

ありとあらゆる助けが大歓迎です!

4

2 に答える 2

1

vartec のご協力に感謝しますが、このサイトhttp://www.movable-type.co.uk/scripts/latlong.htmlを見つけました。このサイトでは、座標と計算に関する多くの情報を提供しています。

于 2010-06-09T07:51:37.657 に答える
0

空間拡張を持つデータベースで可能です。

MySQL を使用していると思います。空間拡張については、ここで説明されています: http://dev.mysql.com/doc/refman/5.5/en/spatial-extensions.html

于 2010-06-02T08:31:25.473 に答える