本质上,我有三个坐标在起作用。
- 田纳西州克利夫兰 -- (35.255097,-84.86844) -- 这就是起源。
- 佐治亚州亚特兰大 -- (32.4608333,-84.9877778) -- 这更接近原点。
- 乔治亚州哥伦布市 -- (33.7488889,-84.3880556) -- 这肯定更远。
现在使用Postgresql 的 Earthdistance 模块,我将使用<@>
运算符来获取两点之间的航空里程。
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.58 英里)更接近田纳西州克利夫兰(18.95 英里),尽管我可以清楚地看出这不是真的。我已经在 Postgresql 9.1 和 Postgresql 8.4 上确认了这些结果。