【问题标题】:Converting Latitude/Longitude values(DMS+Compass Direction format) to corresponding Decimal Point values in Android在Android中将纬度/经度值(DMS+指南针方向格式)转换为相应的小数点值
【发布时间】:2011-08-04 16:23:47
【问题描述】:

我正在开发一个 Java android 项目并遇到以下问题。我搜索了很多,但仍然存在将 DMS 格式的纬度/经度值(例如:38°2'56''N,122°9'28''W)转换为相应的十进制度数格式的问题。

需要转换为相应十进制度格式的示例值。

38°49'59''N,26°56'59''E

38°2'56''N,122°9'28''W

34°52'58''S,56°10'58''W

谢谢

【问题讨论】:

    标签: android google-maps map latitude-longitude dms


    【解决方案1】:

    当您将 DMS 转换为十进制度时,您所做的就是除以 60。将 S 除以 60,将其与 M 相加,然后将结果除以 60,然后将其与 D 相加。

    第二部分处理坐标点的方向。想象一对在正确位置具有罗盘方向的轴(即,向上是 N,向右是 E,向下是 S,向左是 W)。这意味着与指向 S 或 W 的 DMS 值对应的任何十进制度值都将为负数。

    38°2'56''N, 122°9'28''W -> 38.048889, -122.157778

    【讨论】:

    • 谢谢格伦登。它有效.......感谢谢里夫和珍妮弗的快速反应。谢里夫公式是正确的。问题是这封信。
    【解决方案2】:

    D°M'S''

    1. 将 S 除以 60 得到 X
    2. 通过将 X 添加到 M 来查找 Y
    3. 将 Y 除以 60 得到 F
    4. 答案 = D + F

    摘要

    从 DMS 转换为学位

    度数 = D + ((S/60)+M)/60

    其中 D 和 M 和 S 是构成 DMS 格式的值:D°M'S''

    【讨论】:

    • 是的,我尝试过这种方式。但是当我这样做时,对于这对值,它指向一个完全不同的位置。 [38°2'56''N,122°9'28''W]
    • 我会检查公式等待
    • 我的公式是正确的,[38°2'56''N, 122°9'28''W] 给出了 38.048889 纬度和 122.157778 经度
    • 不可能!必须有一些参数来指定输入是dms还是degrees或类似的东西!缺少此参数会导致本地化差异
    • 试试这些:[-38.048889, 122.157778],[38.048889, -122.157778][-38.048889, -122.157778]:有没有合适的位置?
    【解决方案3】:

    您可以随时在此处使用 Sherif 公式检查您的工作: http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

    【讨论】:

    • 是的,但是当我将这两个值对粘贴到 Google 地图中时,它完全显示了两个不同的位置。 [38°2'56''N, 122°9'28''W] && [38.048889, 122.157778]
    猜你喜欢
    • 1970-01-01
    • 2014-08-11
    • 2012-01-20
    • 1970-01-01
    • 2016-11-27
    • 2021-09-26
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多