如何将 Google 地图 plus 代码转换为经纬度坐标

Ram*_*amy 5 maps android google-maps coordinates open-location-code

我正在做一个项目,我正在使用一些旧的谷歌地图东西。例如,它需要经度和纬度 GPS 坐标来获取医院的位置。

我找不到以“lng,lat”格式检索该信息的方法

例如:(34.417514, 8.7518123)

新的谷歌地图唯一拥有的是加号代码(由https://plus.codes/使用),它们用作位置坐标。

你们能帮我找到一种将它们转换为 lng lat 格式的方法,或者直接从 Google 地图网站检索 lng 和 lat 的方法吗?

或者通过在 android studio 中以加号代码格式保存我的地理位置(当然在数据库中)而不是使用 lat lng 来替代

https://www.up-00.com/i/00125/m4kadq6c7aeb.png

And*_*nko 5

您可以通过Plus 代码 APIlat/lng将 Plus 代码转换为格式。如果您有完整的(“+”字符前的 8 位数字,例如您所在的位置)Plus 代码,您可以在本地(无需任何互联网请求)使用以下方法:8F6CCQCW+2FOpenLocationCode.decode()

...
OpenLocationCode olc = new OpenLocationCode("8F6CCQCW+2F");
Log.d(TAG, "Lat = " + olc.decode().getCenterLatitude() + "  Lng = " + olc.decode().getCenterLongitude());
...
Run Code Online (Sandbox Code Playgroud)

如果您的加号代码很短(“+”字符前少于 8 位数字,例如,CCQCW+2F Gafsa对于您所在的位置,Gafsa 是该区域,并且使用它而不是使用完整的加号代码),您可以HttpURLConnection使用

`https://plus.codes/api?address=CCQCW%2B2F Gafsa&key=YOUR_GEOCODING_API_KEY`
Run Code Online (Sandbox Code Playgroud)

%2B用于 for+符号)

(注意!您需要用于地理编码部分的地理编码 API 密钥Gafsa,即区域,您需要一个带有短加号的区域)并从其 JSON 响应中获取location.lat和标记:location.lng

{
  "plus_code": {
    "global_code": "8F6CCQJG+",
    "geometry": {
      "bounds": {
        "northeast": {
          "lat": 34.432500000000005,
          "lng": 8.777500000000003
        },
        "southwest": {
          "lat": 34.43000000000001,
          "lng": 8.775000000000006
        }
      },
      "location": {
        "lat": 34.431250000000006,
        "lng": 8.776250000000005
      }
    },
    "locality": {}
  },
  "status": "OK"
}
Run Code Online (Sandbox Code Playgroud)

对于“替代”(以加号代码格式保存我的地理位置),您可以(完全本地)使用类encode()的方法OpenLocationCode

OpenLocationCode.encode(34.43125, 8.77625)
Run Code Online (Sandbox Code Playgroud)