Postgresql earthdistance – 具有半径的earth_box
发布时间:2020-12-13 16:03:07 所属栏目:百科 来源:网络整理
导读:拜托,你能解释一下earth_box函数的这种行为……或者我做错了什么? 使用的数据 40.749276,-73.985643 = Empire State Building - is in my table40.689266,-74.044512 = Statue of Liberty - is my current position in select - 8324m far from Empire Stat
拜托,你能解释一下earth_box函数的这种行为……或者我做错了什么?
使用的数据 40.749276,-73.985643 = Empire State Building - is in my table 40.689266,-74.044512 = Statue of Liberty - is my current position in select - 8324m far from Empire State Building 我的桌子 => select id,latitude,longitude,title from requests; id | latitude | longitude | title ----+-----------+------------+----------------------- 1 | 40.749276 | -73.985643 | Empire State Building 从帝国大厦到自由女神像的距离 => SELECT id,title,earth_distance(ll_to_earth(40.689266,-74.044512),ll_to_earth(latitude,longitude)) as distance_from_current_location FROM requests ORDER BY distance_from_current_location ASC; id | latitude | longitude | title | distance_from_current_location ----+-----------+------------+-----------------------+-------------------------------- 1 | 40.749276 | -73.985643 | Empire State Building | 8324.42998846164 我现在的位置是距离帝国大厦800米以上的Libery雕像,但是 => SELECT id,title FROM requests WHERE earth_box(ll_to_earth(40.689266,5558) @> ll_to_earth(requests.latitude,requests.longitude); id | latitude | longitude | title ----+-----------+------------+----------------------- 1 | 40.749276 | -73.985643 | Empire State Building 扩展和postgresql的版本 => dx List of installed extensions Name | Version | Schema | Description ---------------+---------+------------+-------------------------------------------------------------- cube | 1.0 | public | data type for multidimensional cubes earthdistance | 1.0 | public | calculate great-circle distances on the surface of the Earth plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language => select version(); version -------------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 9.4beta2 on x86_64-apple-darwin13.3.0,compiled by Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn),64-bit 谢谢 解决方法
这里的问题是earth_box获得了Statute Miles.
8324.42998846164米附近有5.172560986623845法定里程 Unit Converter 解决方案:将半径转换为Statute Miles单位 earth_box(ll_to_earth(40.689266,5558 / 1.609)//不返回结果 earth_box(ll_to_earth(40.689266,9000 / 1.609)//确实. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |