有没有从JSON文件中获取结果的方法?

时间:2015-08-13 08:05:52

标签: java json google-maps

在下面的代码中,“results”,“geometry”,“location”,“lat”和“lng”是硬编码的。

问题是,如果Google更改了其中的一些字词,我的代码将无法使用。所以我的问题是:谷歌地图API或JSON库中是否有方法可以解决我的问题?

private Location getCoordinates(Location l, JSONObject json) {
        try {
            JSONArray jsonObject1 = (JSONArray) json.get("results");
            JSONObject jsonObject2 = (JSONObject)jsonObject1.get(0);
            JSONObject jsonObject3 = (JSONObject)jsonObject2.get("geometry");
            JSONObject location = (JSONObject) jsonObject3.get("location");

             l.setLat(Double.parseDouble(location.get("lat").toString()));
             l.setLon(Double.parseDouble(location.get("lng").toString()));

             return l;
        } catch (Exception e) {
            throw new IllegalArgumentException("Country or zip not found.");
        }

    }

1 个答案:

答案 0 :(得分:1)

您可以使用Google client lib。然后你可能得到这样的坐标。

    GeoApiContext context = new GeoApiContext().setApiKey("API_KEY");
    GeocodingResult[] results =  GeocodingApi.geocode(context,
            "1600 Amphitheatre Parkway Mountain View, CA 94043").await();
    for (GeocodingResult result : results) {
        System.out.println("LAT: " + result.geometry.location.lat);
        System.out.println("LNG: " + result.geometry.location.lng);
    }