【发布时间】:2012-08-02 17:45:47
【问题描述】:
如何从 json google places api 中检索“位置”
在这个 json 响应中:
{
"html_attributions" : [],
"result" : {
"address_components" : [
{
"long_name" : "1623",
"short_name" : "1623",
"types" : [ "street_number" ]
},
{
"long_name" : "1/2 N Cahuenga Boulevard",
"short_name" : "1/2 N Cahuenga Boulevard",
"types" : [ "route" ]
},
{
"long_name" : "Los Angeles",
"short_name" : "Los Angeles",
"types" : [ "locality", "political" ]
},
{
"long_name" : "CA",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "US",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "90028",
"short_name" : "90028",
"types" : [ "postal_code" ]
}
我正在使用此代码获取“lat”和“lng”:
JSONObject jsonLocation = c.getJSONObject("geometry").getJSONObject("location");
places_latitude = jsonLocation.getString("lat");
places_longitude = jsonLocation.getString("lng");
我如何获得“位置”值?我正在使用 java。
谢谢,
卡洛斯。
【问题讨论】:
-
问题是,没有位置值。相反,您需要做的是遍历 google 为您提供地址组件的部分,查看它们的类型并在找到正确的部分时停止。然后获取该对象的 long_name。
-
您应该真正使用 ENUM AddressComponentType。这是一个示例:stackoverflow.com/a/57612219/9278333
标签: java json api google-maps google-maps-api-3