Android студия; добавить информацию .title и .snippet в ArrayList <LatLng> - PullRequest
0 голосов
/ 21 апреля 2020

Итак, я хочу показать множество длинных длинных позиций для отображения на моей карте в виде маркеров через Arraylist и показать их имена + пользовательскую информацию (в этом примере я показываю только две позиции):

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
ArrayList <LatLng> arrayList=new ArrayList<LatLng>();
LatLng basketball = new LatLng(50.375199, 5.883950);
LatLng football = new LatLng(50.370330, 5.901570);

Добавьте их:

    arrayList.add(basketball);
    arrayList.add(football);

И покажите их как маркеры:

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))); }

Хотя это работает, проблема, очевидно, состоит в том, что все мои маркеры имеют одинаковый заголовок и информацию .snippet.

Мой вопрос таков: как мне добавить информацию к каждой позиции в моем массиве arrayList и показать ее на каждом маркере с помощью .title и .snippet.

Я действительно с нетерпением жду некоторых ответов, похоже, не могу их найти. Заранее спасибо :)

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Полагаю, вам нужно создать собственный класс-оболочку. Что-то вроде

    class MyModel{
         LatLng latLng;
         String title;
         String snippet;
    }

Затем используйте ArrayList<MyModel> list и заполните заголовок и фрагмент на основе позиции в списке.

0 голосов
/ 23 апреля 2020

Итак, я нашел способ:

@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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...