私は2つのテーブルを持っています。1つのテーブルには、各国の長方形の北、東、南、西の座標を持つ国が含まれています。これが構造です。
+--------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------------+------+-----+---------+----------------+
| boundary_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| country | varchar(100) | NO | | NULL | |
| country_code | varchar(4) | NO | | NULL | |
| geo_west | float(10,6) | NO | | NULL | |
| geo_north | float(10,6) | NO | | NULL | |
| geo_south | float(10,6) | NO | | NULL | |
| geo_east | float(10,6) | NO | | NULL | |
+--------------+----------------------+------+-----+---------+----------------+
さて、他のテーブルにはユーザーの場所が保存されているので、ユーザーの場所(緯度と経度)をテーブルと照合して、選択した目的の国に該当するかどうかを確認する必要があります。つまり、選択した国の範囲内にあるユーザーのみをピックアップします。
これはテーブル(選択された4)からのデータです。
+-------------+----------------+--------------+-------------+------------+------------+-------------+
| border_id | 国| 国コード| geo_west | geo_north | geo_south | geo_east | + ------------- + ---------------- + -------------- + --- ---------- + ------------ + ------------ + ------------- + | 218 | アフガニスタン| AF | 60.478436 | 38.483425 | 29.377470 | 74.879463 | | 224 | アルバニア| AL | 19.293968 | 42.665615 | 39.648354 | 21.068476 | | 188 | アルジェリア| DZ | -8.673869 | 37.093727 | 18.960026 | 11.979549 | | 229 | アメリカ領サモア| AS | -170.841339 | -14.162115 | -14.382480 | -169.416061 | + ------------- + ---------------- + -------------- + --- ---------- + ------------ + ------------ + ------------- +
ユーザーテーブル、
+---------+-----------+-----------+
| user_id | latitude | longitude |
+---------+-----------+-----------+
| 6 | 51.495010 | -0.071583 |
| 7 | 51.204731 | 1.251486 |
| 8 | 51.261860 | 1.327887 |
| 9 | 51.487850 | -0.071926 |
| 10 | 51.498699 | -0.201187 |
| 11 | 51.436462 | -0.100937 |
| 12 | 51.331093 | 0.829124 |
| 13 | 51.565121 | -0.065918 |
| 14 | 51.493568 | -0.248566 |
+---------+-----------+-----------+
座標を北東と南西に変換する必要がありますか、それともそれらと効果的に一致させる方法はありますか?
ジオロケーションサービスには限界があるため、避けたいと思います。