如何在Android上获取谷歌地图的经度纬度的E6格式

Rak*_*kib 14 android google-maps latitude-longitude

我如何找出一个位置的经度纬度的SPECIFIC E6值.例如,我用谷歌搜索了巴拉圭首都亚松森的长途地区.它回报我:

The latitude and longitude of Asuncion, Paraguay is 25°16' S, 57°40 W

现在我如何将long-lat的这种格式转换为Android知道的long-lat的E6格式?这个E6究竟是什么东西?

[ps我也用Google搜索了亚松森的E6长途......没有运气]

Rak*_*kib 25

所以这是一个两步过程 - 感谢hooked82的回答


步骤1. 从维基百科从DMS转换为十进制度

给定DMS(度,分,秒)坐标(例如87°43'41"W),使用以下方法将其转换为十进制度数是微不足道的:

  • 学位总数
    = 87
  • 总秒数
    = 43'41"=(43*60 + 41*1)= 2621秒.
  • 小数部分是总秒数除以
    3600 = 2621/3600 = 0.728056
  • 将小数度加到整个度数以产生最终结果
    = 87 + 0.728056 = 87.728056.
  • 由于它是西经度坐标,否定结果.
    = -87.728056.
  • Long-Lat参考:

    Lat.  North = +
    Lat.  South = -
    Long. East  = +
    Long. West  = -
    
    Run Code Online (Sandbox Code Playgroud)

    步骤2.从十进制度转换为MicroDegrees(E6格式) 从SO讨论

    MicroDegrees(E6格式)= DecimalDegrees*1e6
    --- AndroidDevGuide 中所述

    从而,

    float lat   = -23.4456f;   //in DecimalDegrees
    float lng   = 45.44334f;   //in DecimalDegrees
    GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));
    
    Run Code Online (Sandbox Code Playgroud)