我有一个表单,我可以在其中输入DMS格式的位置坐标,该格式存储在表格中。我通过使用http://itouchmap.com/latlong.html
将标记拖动到我需要的位置来找到坐标度数,分钟和秒由白色空格分隔,而不是通常的符号。
示例:
这些值存储在 varchar 的字段中,并按原样存储。
有人能告诉我这是什么问题吗?
但是当我检索这些坐标以在Google地图上绘制它时,标记位于其他地方。
P.S。 :当坐标以DDD格式存储时,标记放置工作完美。
我使用的代码是从https://developers.google.com/maps/articles/phpsqlajax_v3?csw=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);