Показывать метки вместе со значком булавки по умолчанию на картах Google для платформы Android - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть несколько мест, которые мне нужно отобразить на моей карте. Я хочу, чтобы информация / метка для каждого маркера отображалась на картах вместе со значком булавки независимо от того, щелкнул ли пользователь по маркеру / булавке. У меня есть следующий код для отображения маркеров.

for (DepartmentLocation loc : departmentLocations) {
                if (loc != null && loc.getLatitude() != null && loc.getLongitude() != null) {
                    LatLng latLng = new LatLng(loc.getLatitude(), loc.getLongitude());

                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
                    googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

                    MarkerOptions markerOptions = new MarkerOptions().position(latLng).title(loc.getName());
                    markerOptions.visible(true);
                    Marker marker = googleMap.addMarker(markerOptions);
                    marker.showInfoWindow();
                    marker.setVisible(true);
                    markers.add(marker);

                }
            }

Но, тем не менее, я вижу только красные булавки и никаких меток рядом с булавкой. Вот как выглядят мои карты. Я вижу только один информационный ярлык, а не остальные. enter image description here

Я попытался использовать IconGenerator из утилиты карты.

реализация 'com.google.maps.android:android-maps-utils:0.5'

  for (DepartmentLocation loc : departmentLocations) {
                if (loc != null && loc.getLatitude() != null && loc.getLongitude() != null) {
                    LatLng latLng = new LatLng(loc.getLatitude(), loc.getLongitude());

                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
                    googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

                    MarkerOptions markerOptions = new MarkerOptions()
                            .icon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon(loc.getName())))
                            .position(latLng)
                            .title(loc.getName());
                    markerOptions.visible(true);
                    Marker marker = googleMap.addMarker(markerOptions);
                    marker.showInfoWindow();
                    marker.setVisible(true);
                    markers.add(marker);

                }
            }

Когда я использую iconfactory, я не могу показать и пин-код, и информационную метку. enter image description here

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Только один InfoWindow отображается одновременно в GoogleMap. Вы не можете отображать несколько InfoWindow одновременно.

Для этого вы должны использовать IconGenerator . Вы можете установить вид на IconGenerator и создать растровую форму этого представления. Вы можете создать представление, которое содержит как маркер, так и представление InfoWindow. Используйте это представление, чтобы создать ваш желаемый маркер.

Вы можете проверить этот ответ

0 голосов
/ 01 ноября 2018

Из документации есть текст о том, что информационное окно отображается по одному, поэтому сделать это невозможно:

"Информационное окно позволяет отображать информацию пользователю, когда он нажмите на маркер. Одновременно отображается только одно информационное окно . Если пользователь нажимает на маркер, текущее информационное окно будет закрыто и Новое информационное окно будет отображаться. Обратите внимание, что если пользователь нажимает на маркер, который в настоящее время показывает информационное окно, это информационное окно закрывается и снова открывается. "

Вы можете прочитать больше здесь: https://developers.google.com/maps/documentation/android-sdk/infowindows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...