如何从谷歌地方详细信息结果中获取纬度和经度值

Posted

技术标签:

【中文标题】如何从谷歌地方详细信息结果中获取纬度和经度值【英文标题】:How to get lat and longtitude values out from google places details result 【发布时间】:2013-08-28 10:12:20 【问题描述】:

我已使用以下代码成功返回地点详细信息的结果:

private PlaceDetails getPlaceDetails(String url) throws Exception


        String jsonResults =null;
        HttpHelper helper = new HttpHelper();
        try 
            jsonResults = helper.GetJSonString(url);
            // Create a JSON object hierarchy from the results

             JSONObject jsonObj = new JSONObject(jsonResults.toString()).getJSONObject("result");

             placeDetails = new PlaceDetails();
             placeDetails.setName(jsonObj.getString("name"));
             placeDetails.setFormatted_address(jsonObj.getString("formatted_address"));
             placeDetails.setInternational_phone_number(jsonObj.getString("international_phone_number"));



         catch (JSONException e) 
            Log.e("LOG_TAG", "Error processing JSON results " + e.getMessage().toString(), e);
        

        return placeDetails;
    

现在,我的问题是我不知道如何从结果中获取 lat 和 lng 值。

提前致谢。

【问题讨论】:

***.com/questions/11251023/… 【参考方案1】:

在您的回复中,您会得到 lat lon

"geometry" : 
     "location" : 
       "lat" : -33.8669710,
       "lng" : 151.1958750
     

你只需要像这样使用 JsonArray 解析数据

jsonObj.getJsonArray("几何");

完整代码可以参考这个链接http://yuvislm.wordpress.com/2012/09/10/google-places-api-and-json-parsing-in-android/

【讨论】:

我用过这段代码 JSONObject jsonObj1 = new JSONObject(jsonResults.toString()); String lat = ((JSONArray)jsonObj1.get("result")).getJSONObject(0).getJSONObject("geometry") .getJSONObject("location").getString("lat");但它仍然无法正常工作。【参考方案2】:

你有如下解析响应

JSONObject jsonObj = new JSONObject(jsonResults.toString());
JSONObject result =jsonObj.getJSONObject("result").getJSONObject("geometry").getJSONObject("location");
Double longitude  = result.getDouble("lng");
Double latitude =  result.getDouble("lat");

你会得到类似的回应

"geometry" : 
     "location" : 
       "lat" : -33.8669710,
       "lng" : 151.1958750
     

查看回复详情

https://developers.google.com/places/web-service/details#PlaceDetailsResults

【讨论】:

以上是关于如何从谷歌地方详细信息结果中获取纬度和经度值的主要内容,如果未能解决你的问题,请参考以下文章

使用谷歌地图中的纬度和经度获取地点详细信息或建筑物名称(Places API ?)

如何从谷歌 API 获取经度和纬度

给定两个位置,如何从谷歌地图获取所有纬度和经度

使用标记从谷歌地图获取纬度/经度坐标

从谷歌标记获取纬度/经度

从谷歌地图获取纬度和经度