Google地图标记放置在错误的位置

时间:2013-12-20 11:18:43

标签: google-maps google-maps-api-3

我有一个表单,我可以在其中输入DMS格式的位置坐标,该格式存储在表格中。我通过使用http://itouchmap.com/latlong.html

将标记拖动到我需要的位置来找到坐标

度数,分钟和秒由白色空格分隔,而不是通常的符号。

示例:

  • Lat:9 59 35.9274
  • Lng:76 17 49.0524

这些值存储在 varchar 的字段中,并按原样存储。

有人能告诉我这是什么问题吗?

但是当我检索这些坐标以在Google地图上绘制它时,标记位于其他地方。

P.S。 :当坐标以DDD格式存储时,标记放置工作完美。

我使用的代码是从https://developers.google.com/maps/articles/phpsqlajax_v3?csw=1

复制粘贴的

1 个答案:

答案 0 :(得分:2)

文章规定,长和晚应存储为十进制(10,6)类型,以允许前面的四位数和十进制后的六位数。地图api不会以任何其他格式可靠地接受这些坐标。

在存储到表格中然后读出地图之前,您必须处理从度数分钟秒到小数点的转换。

建议阅读:how to convert between degrees, minutes, seconds to Decimal coordinates

http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

Regex/Javascript to transform Degrees Decimal Minutes to Decimal Degrees

编辑请参阅链接here。 Google maps API不支持DMS,除非以非常具体的方式实现(在这种情况下,您自己格式化字符串并且可以简单地转换?您的选择。

问题是API期望经度和纬度为整数,因此不接受空格。

如果我是正确的(在javascript中),对十进制的对话就像这一样简单:

var = hour+(((minute*60)+(second))/3600);