我试图找到一种从google places api获取照片引用字符串的方法。这是谷歌的格式:
"photos" : [
{
"height" : 768,
"html_attributions" : [
"\u003ca href=\"https://maps.google.com/maps/contrib/114756359878708427597/photos\"\u003eHotel Olympic\u003c/a\u003e"
],
"photo_reference" : "CmRdAAAAGWSabKG9f1wwRa1-dg0RVlb_m54RQDO023QTxEgOdFvlE2KjnK9Saxiqnxanr0yTCdbEg183RUk0kncFVwmFoQ8kn5yjnPHGZ-3-vi8Jck-6MbfJLU__h7hibPJ4tko3EhAhSR1B_4-eT4c6A_s_32I_GhTFiO19eMhOD5x5xYfB4DN3ABOtKA",
"width" : 1024
}
]
如何获取照片引用字符串?有没有办法做到这一点,或者我必须做些别的事情?
这是我的Java代码:
private HashMap<String, String> getPlace(JSONObject jPlace){
HashMap<String, String> place = new HashMap<String, String>();
String photo_reference= "-NA-";
if(!jPlace.isNull("photos")){
//something to do here
}
//a string builder here to create the url
place.put("photo", theUrl);
}
其中jplace是来自google places api的jsonobject格式
因为有更多的代码,但是我刚刚上传了我得到jsonobject的部分
最佳答案
这是我在//do somethign here
部分必须做的:
StringBuilder sb = new StringBuilder("https://maps.googleapis.com/maps/api/place/photo?maxwidth=50&photoreference=");
JSONArray photos = jPlace.getJSONArray("photos");
//Run for loop for getting photo_reference string in each object
for (int i=0; i <= photos.length; i++){
JSONObject getPhtotos = photos.getJSONObject(i);
String photo_reference = getPhtotos.getString("photo_reference");
sb.append(photo_reference);
sb.append("&key=...");
}