纬度和经度数据类型和存储格式

时间:2011-04-19 21:30:28

标签: mysql types geocoding

我看到使用两种格式,如: 41.45063 N和(N 40°48'27.34“)。

我假设: 如果我使用第一种格式,那么我只需要2个列:十进制,方向
如果我使用第二种格式,那么我需要4个列:度,分,秒,方向

用于存储数据库的格式以及如何将1种格式转换为另一种格式。我们也只存储坐标甚至是N,S,E,W这样的方向?

我在MySQL中使用cordinates for local places。

3 个答案:

答案 0 :(得分:4)

您可以将第二种格式转换为第一种格式。学位课程有60分钟,一分钟有60分钟。在你40°48'27.34的例子中,它是 40 +( 48 ∙60 + 27.34 )/3600≈40.807594°。

所以你需要两列,一列用于经度,一列用于纬度(你知道,你只需将方向编码为数字的符号)。

答案 1 :(得分:1)

40°48'27.34只是一个浮点数,它已被格式化以方便人类消费。除非您的数据表包含“度”,“分钟”和“秒”的字段,否则您无法直接存储该“人”格式。但是,将其存储为41.45063的单个浮点值可让您按需将其重新格式化为人性化格式。

不需要方向字段。您可以假设正数表示北和西,负数表示南/东。

答案 2 :(得分:0)

RayHT

您所指的格式称为十进制格式和DMS(度,分,秒)。有一个直接转换后向前的功能。只需谷歌'度数到十进制转换'为您使用的语言(PHP,Javascript等)。

存储十进制格式时,值的符号表示方向。对于纬度,正值为北,负值为南。对于经度,正值是东,负值是西。

以下是在线转换器的链接以及您可能会发现有用的基础知识的描述。

http://www.csgnetwork.com/gpscoordconv.html

安德鲁 “OpenGeoCode.Org”团队的一部分