我必须从JSON解析坐标,并希望将两个值(lat,lng)保存在一个“对象”中。之后,我想在地图上的Google Maps Activity中显示前10个对象。
我的主要活动
List<JSONModels> jsonModelsList = new ArrayList<>();
try {
JSONObject jsonObject = new JSONObject(buffer.toString());
JSONArray placemarks = jsonObject.getJSONArray("placemarks");
for (int i = 0; i < placemarks.length(); i++) {
JSONObject jsonPart = placemarks.getJSONObject(i);
JSONModels jsonModels = new JSONModels();
jsonModels.setName(jsonPart.getString("name"));
jsonModels.setAddress(jsonPart.getString("address"));
jsonModels.setExterior(jsonPart.getString("exterior"));
jsonModels.setInterior(jsonPart.getString("interior"));
jsonModels.setFuel(jsonPart.getInt("fuel"));
for (int j = 0; j <= 10; j++) {
JSONObject marker = placemarks.getJSONObject(j);
JSONArray coordinates = marker.optJSONArray("coordinates");
double lat = coordinates.optDouble(0);
double lng = coordinates.optDouble(1);
}
jsonModelsList.add(jsonModels);
}
} catch (JSONException e) {
e.printStackTrace();
}
return jsonModelsList;
答案 0 :(得分:1)
Jade,我们有很多方法可以保存lat,但最简单的方法是创建一个标记对象列表,这样我们就可以轻松使用地图上的标记列表。
try {
List<LatLng> LatlongList = new ArrayList<LatLng>();
JSONObject jsonObject = new JSONObject(buffer.toString());
JSONArray placemarks = jsonObject.getJSONArray("placemarks");
for (int i = 0; i < placemarks.length(); i++) {
JSONObject jsonPart = placemarks.getJSONObject(i);
JSONModels jsonModels = new JSONModels();
jsonModels.setName(jsonPart.getString("name"));
jsonModels.setAddress(jsonPart.getString("address"));
jsonModels.setExterior(jsonPart.getString("exterior"));
jsonModels.setInterior(jsonPart.getString("interior"));
jsonModels.setFuel(jsonPart.getInt("fuel"));
for (int j = 0; j <= 10; j++) {
JSONObject marker = placemarks.getJSONObject(j);
JSONArray coordinates = marker.optJSONArray("coordinates");
double lat = coordinates.optDouble(0);
double lng = coordinates.optDouble(1);
//add lat long object in list of LatlongList.
LatlongList.add(new LatLng(lat,lng));
}
}
` //LatlongList is the list where the all lat and longs a together.
LatlongList.size();
} catch (JSONException e) {
e.printStackTrace();
}
return LatlongList;