基本的に、私は3つの座標を使用しています。
- テネシー州クリーブランド-(35.255097、-84.86844)-これが起源です。
- ジョージア州アトランタ-(32.4608333、-84.9877778)-これはその起源にはるかに近いです。
- ジョージア州コロンバス-(33.7488889、-84.3880556)-これは間違いなく遠くにあります。
これが比較のためにこれらの3つのポイントを持つGoogleマップです。
ここで、PostgresqlのEarthdistanceモジュールを使用して、オペレーターを使用し<@>
て2つのポイント間のエアマイルを取得します。
SELECT 'Celeveland, TN' AS origin
, '(35.255097,-84.86844)' AS origin_cords
, city || ', ' || region AS dest
, cords AS cords
, cords <@> '(35.255097,-84.86844)'::point AS distance_miles
FROM maxmind.city
WHERE (region = 'GA' AND city ='Atlanta') OR (region = 'GA' AND city = 'Columbus')
;
しかし、これは私が得るものです...
origin | origin_cords | dest | cords | distance_miles
----------------+-----------------------+--------------+--------------------------+------------------
Celeveland, TN | (35.255097,-84.86844) | Columbus, GA | (32.4608333,-84.9877778) | 18.952732930393
Celeveland, TN | (35.255097,-84.86844) | Atlanta, GA | (33.7488889,-84.3880556) | 34.5888147812704
(2 rows)
つまり、ジョージア州コロンバスは、ジョージア州アトランタ(34.58mi)よりも、ジョージア州クリーブランド(18.95mi)に近いということです。Postgresql9.1とPostgresql8.4でこれらの結果を確認しました。