如何将Google Maps Plus代码转换为Lng和Lat坐标

时间:2019-05-23 14:38:51

标签: android google-maps maps coordinates open-location-code

我正在做一个项目,并且正在使用一些旧的Google Maps东西 例如,它需要经纬度gps坐标才能获得医院的位置。 我找不到以这种格式'lng,lat'检索这些信息的方法 例如(34.417514,8.7518123) 新的Google地图唯一拥有的是加号(由https://plus.codes/使用),并将其用作位置坐标 你们可以帮助我找到一种将其转换为lng lat格式的方法,还是直接从Google Maps网站上提取lng和lat的方法。

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

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

2 个答案:

答案 0 :(得分:2)

Python解决方案:

>>> import openlocationcode
>>> openlocationcode.decode('8F6CCQCW+2F')
[34.42, 8.796125, 34.420125, 8.79625, 34.4200625, 8.7961875, 10]

答案 1 :(得分:1)

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

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

如果您使用简短的加号(在“ +”字符前少于8位,例如您的位置为CCQCW+2F Gafsa),则可以将HttpURLConnection

一起使用
`https://plus.codes/api?address=CCQCW%2B2F Gafsa&key=YOUR_GEOCODING_API_KEY`

(注意!您需要Geocoding API Key用于地理编码Gafsa部分) 并从其JSON响应中获取location.latlocation.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"
}

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

OpenLocationCode.encode(34.43125, 8.77625)