我是Android新手。在我的代码中,我想在我的地图上添加1000个标记。我知道如何用Lat-long创建数组,我知道如何创建标记。
我创建了这样的标记:
protected void createMarker(Double latitude, Double longitude) {
LatLng latLong = new LatLng(latitude, longitude);
map.addMarker(new MarkerOptions()
.position(latLong)
// .title(title)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker)));
}
并将LatLog添加到我的arrayList中,如下所示:
locations.add(new LatLng(-08.8123083,13.2249500));
locations.add(new LatLng(-08.8265861,13.2274667));
locations.add(new LatLng(-08.8328611,13.2182861));
我的问题是,如果我添加1000 LatLong,我将LaLng添加到我的数组中的方式将获得大量代码。 请展示更好的方法。
谢谢
答案 0 :(得分:1)
添加@Pso的评论,您可以将所有Lat,Lng值存储在JSON文件中,并将该文件复制到应用的assets文件夹中。
因此,假设您在assets/locations.json
文件中保存了这样的数据,
{
"data": [
[-08.8123083,13.2249500],
[-08.8265861,13.2274667],
[-08.8328611,13.2182861],
....]
}
然后将其读作,
public String getJSONFromAssets() {
String json = null;
try {
InputStream inputData = getAssets().open("locations.json");
int size = inputData.available();
byte[] buffer = new byte[size];
inputData.read(buffer);
inputData.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
在代码中的任何位置使用JSON数据,例如
JSONObject obj = new JSONObject(getJSONFromAssets());
JSONArray arr = obj.getJSONArray("data");
if (arr != null)
for (int i=0;i<arr.length();i++)
locations.add(arr.get(i).toString());