我正在尝试开发一个Android应用程序,它显示代表我所在区域周围所有树木的标记。作为Android开发的新手,我不知道如何从Json中检索数据。我只能显示1棵树及其名称。我想要完成的是显示所有树木及其名称。任何帮助/建议都会非常感激.Below是Json的代表。
{"Tree_ID":"19",
"Tree_Name":"Freeman Maple",
"Latitudes":"41.60659790",
"Longitudes":"-88.07947396"},
{"Tree_ID":"20",
"Tree_Name":"Ginkgo ",
"Latitudes":"41.60653306",
"Longitudes":"-88.07937155"},
{"Tree_ID":"21",
"Tree_Name":"Golden Raintree",
"Latitudes":"41.60644056",
"Longitudes":"-88.07604981",},
{"Tree_ID":"22",
"Tree_Name":"Greenspire Linden",
"Latitudes":"41.60560806",
"Longitudes":"-88.08078320"},
答案 0 :(得分:1)
您可以从JSON
获取数据,如下所示。
private class AsyncTaskGetData extends AsyncTask<String, String, JSONArray> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected JSONArray doInBackground(String... arg0) {
JSONArray jsonArray = your webservices goes here....
}
@Override
protected void onPostExecute(JSONArray result) {
if (result != null) {
for (int i = 0; i < result.length(); i++) {
JSONObject dataObject = null;
try {
dataObject = result.getJSONObject(i);
String str1 = dataObject.getString("Tree_ID");
String treename= dataObject.getString("Tree_Name");
String latitude = dataObject.getString("Latitudes");
String longitude = dataObject.getString("Longitudes");
// Call this method for draw marker in google map
drawMarker(new LatLng(Double.parseDouble(latitude), Double.parseDouble(longitude)),treename);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
//并从onCreate()或onResume()或您想要的地方调用此AsyncTask,如下所示。
new AsyncTaskGetData().execute();
在ArrayList
中添加该数据并使用您想要的位置。
用于在地图中设置多个标记
// Google Map中的此方法绘图标记
private void drawMarker(LatLng point,String text){
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point).title(text).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
googleMap.addMarker(markerOptions)
}