Android 安卓工作室;将.title和.snippet信息添加到ArrayList<;LatLng>;

Android 安卓工作室;将.title和.snippet信息添加到ArrayList<;LatLng>;,android,android-activity,maps,Android,Android Activity,Maps,因此,我想通过Arraylist在地图上显示各种横向位置作为标记,并显示它们的名称+自定义信息(在本例中,我只显示两个位置): 并将其显示为标记: public void onMapReady(GoogleMap googleMap) { mMap = googleMap; for (int i=0;i<arrayList.size();i++) { mMap.addMarker(new MarkerOptions().position(arrayList.

因此,我想通过Arraylist在地图上显示各种横向位置作为标记,并显示它们的名称+自定义信息(在本例中,我只显示两个位置):

并将其显示为标记:

public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    for (int i=0;i<arrayList.size();i++) {
        mMap.addMarker(new MarkerOptions().position(arrayList.get(i)).title("Basketball Court").snippet("It's a sunny square"));
        mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(arrayList.get(i))); }
public void onMapReady(谷歌地图谷歌地图){
mMap=谷歌地图;

对于(inti=0;i我想您需要创建自定义包装器类

    class MyModel{
         LatLng latLng;
         String title;
         String snippet;
    }
然后使用
ArrayList list
并根据列表中的位置填充标题和代码段。

因此我找到了一种方法:

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener()
    {

        @Override
        public void onInfoWindowClick(Marker arg0) {
        }

    });
    LatLng basketb = new LatLng(52.275000, 4.28000);
    LatLng footb = new LatLng(52.575441, 4.514373);
    // etc. etc. etc.


    mMap.addMarker(new MarkerOptions()
            .position(basketb)
            .title("Basketball Court")
            .snippet("Its a sunny place."));
    mMap.addMarker(new MarkerOptions()
            .position(footb)
            .title("Football Court")
            .snippet("It's a crowdy place."));
    // etc. etc. etc.

    mMap.moveCamera(CameraUpdateFactory.newLatLng(basketb));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(footb));

首先谢谢你的回答,你能用一些更广泛的例子来编辑吗(关于ArrayList列表并调用我的for循环来添加标记。我已经将MyModel类设置为java文件,但是在我的Mapsactivity中,我非常迷茫,因为我正在努力在列表中给出LatLng的字符串值并执行for循环。非常感谢。而不是LatLng basketball=new LatLng(50.375199,5.883950);LatLng football=new LatLng(50.370330,5.901570);你应该像MyModel basketball=new MyModel(50.375199,5.883950,“标题篮”,“片段篮”);MyModel football=new MyModel(50.370330,5.901570,“标题足球”,“片段足球”)当我像这样尝试时,我得到了一个错误:MyModel类中的构造函数MyModel不能应用于给定的类型;MyModel basketball=new MyModel(50.375199,5.883950,“篮球场”,“阳光广场”);必需:未找到参数:double、double、String、String原因:实际参数列表和形式参数列表的长度不同,因此我排除了错误。但现在我在运行for循环时出错:
for(int i=0;我猜MyModel类的构造函数不正确。它应该接受LatLng,然后是snippet,然后是title。因此构造函数应该是:MyModel(LatLng LatLng,String snippet,String title)
    class MyModel{
         LatLng latLng;
         String title;
         String snippet;
    }
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener()
    {

        @Override
        public void onInfoWindowClick(Marker arg0) {
        }

    });
    LatLng basketb = new LatLng(52.275000, 4.28000);
    LatLng footb = new LatLng(52.575441, 4.514373);
    // etc. etc. etc.


    mMap.addMarker(new MarkerOptions()
            .position(basketb)
            .title("Basketball Court")
            .snippet("Its a sunny place."));
    mMap.addMarker(new MarkerOptions()
            .position(footb)
            .title("Football Court")
            .snippet("It's a crowdy place."));
    // etc. etc. etc.

    mMap.moveCamera(CameraUpdateFactory.newLatLng(basketb));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(footb));