如何从Google Place API JSON获取位置(android)

时间:2012-06-27 13:38:25

标签: android json google-places-api

我有下面的类型来获取位置数组以获得纬度,但它无法正常工作。 我的代码中有任何错误吗?我可以得到结果,但我不能得到几何。

 JSONTokener jsonParser = new JSONTokener(strResult);  
 JSONObject jsonObject = new JSONObject(strResult);

 JSONArray routeObject = jsonObject.getJSONArray("results");

routeObject.getJSONObject(0).getJSONArray("geometry").getJSONObject(0).getJSONArray("location").getJSONObject(0).getDouble("lat")

2 个答案:

答案 0 :(得分:0)

我是这样做的:

谷歌地图网址:

http://maps.google.com/maps/geo?q=“+ fullAddress;

我读了它:

JSONObject response = new JSONObject(result);
JSONObject point = response.getJSONArray("Placemark").getJSONObject(0).getJSONObject("Point");

            lat = point.getJSONArray("coordinates").getString(1);
            lng = point.getJSONArray("coordinates").getString(0);

希望它有所帮助!

答案 1 :(得分:0)

我从未使用google-places-api,但我只是尝试了一些东西。我只是从https://developers.google.com/maps/documentation/places/ place-search-response 中取出示例文件,并将其作为输入复制到文件中。 (编辑:我正在使用http://code.google.com/p/google-gson/进行解码)

解码JsonFile的代码看起来像那样,并为您提供所需的latitude

        JsonParser parser = new JsonParser();
        JsonObject obj = (JsonObject)parser.parse(new FileReader(path));

        for(Entry<String, JsonElement> entry : obj.entrySet()) {
            String key = entry.getKey();
            System.out.println(key);

            if(key.trim().equals("results".trim())) {
                for(JsonElement ele2 : entry.getValue().getAsJsonArray()) {
                    System.out.println(ele2.getAsJsonObject().get("geometry").getAsJsonObject().get("location").getAsJsonObject().get("lat"));
                }
            }
        }