0

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

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 值。

提前致谢。

4

2 回答 2

0

在您的回复中,您得到 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/ 获取完整代码

于 2013-08-28T11:44:07.597 回答
0

你有如下解析响应

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

于 2018-07-19T06:55:42.200 回答