Google地图:将标记保存在数组中,然后列出它们

时间:2016-06-29 12:58:03

标签: java android google-maps

用户在地图上创建标记后,如何将它们+所有属性(lat,long,title,snippet等)保存在结构/数组中,然后将它们全部列在单独的活动中?我应该创建一个关联每个标记的对象吗?

以下是{{1}}的代码:

{{1}}

1 个答案:

答案 0 :(得分:2)

要使用创建的标记,您可以创建List<Marker>

private List<Marker> markers = new ArrayList<Marker>();

然后将创建的标记添加到其中:

Marker m = mMap.addMarker(new MarkerOptions()
   .position(new LatLng(lat, lon))
   .title(marker_title));
markers.add(m);

如果您需要将标记的值传递给另一个Activity,因为标记是UI的一部分,它不会被认为是持久的,但是MarkerOptions实现了Parcelable并且您可以使用意图将其发送到另一个活动:

List<MarkerOptions> markers = new ArrayList<MarkerOptions>();

MarkerOptions markerOptions = new MarkerOptions()
    .position(new LatLng(lat, lon))
    .title(marker_title);
Marker m = mMap.addMarker(markerOptions);
markers.add(markerOptions);

然后,您可以使用意图发送列表:

MarkerOptions[] markersArray = markers.toArray(new MarkerOptions[markers.size()]);
Intent intent = new Intent();
intent.putExtra("markers", markersArray);