Google Maps v2 Маркер zOrdering – установить в начало

Я знаю, что в этой теме есть несколько тем, но я все же нашел достаточно хорошее решение.

Мне НЕОБХОДИМО разместить маркер поверх всех других маркеров. Как мне это сделать?

Я попытался добавить этот маркер до и после всех других маркеров, однако порядок выглядит как снизу (спереди) вверх (назад) на карте. Это неприемлемо, поскольку я хочу сосредоточиться на маркере, который находится перед всеми маркерами.

Я знаю, что многоугольники могут быть закодированы, но я бы предпочел красивую графику!

На самом деле вы не можете заказать Polygon над маркером!

«Порядок, в котором этот многоугольник рисуется по отношению к другим оверлеям, включая Polylines, GroundOverlays и TileOverlays, но не Markers. Наложение с большим z-индексом нарисовано поверх наложений с меньшими z-индексами. Порядок наложений с То же значение z-index произвольно. Значение по умолчанию равно 0. " – https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/Polygon

У кого-нибудь есть идеи по этому поводу?

Ответ Эйдена Фрая работает, если вы действительно показываете InfoWindow. Если вы этого не сделаете, маркер не появится на фронт. Вот хак, чтобы все равно выйти на фронт:

Создайте пользовательский InfoWindowAdapter, который отображает окно с информацией о 0dp:

public class MapWindowAdapter implements GoogleMap.InfoWindowAdapter { private Context context = null; public MapWindowAdapter(Context context) { this.context = context; } // Hack to prevent info window from displaying: use a 0dp/0dp frame @Override public View getInfoWindow(Marker marker) { View v = ((Activity) context).getLayoutInflater().inflate(R.layout.no_info_window, null); return v; } @Override public View getInfoContents(Marker marker) { return null; } } 

Вот код макета:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="0dp" android:layout_height="0dp"> </LinearLayout> 

Когда вы настроите свою карту, установите адаптер и пользовательский InfoWindowAdapter и OnMarkerClickListener (используя showInfoWindow и верните true, как сообщается AIden Fry):

 mMap.setInfoWindowAdapter(new MapWindowAdapter(this)); //Call showInfoWindow to put marker on top of others. myMarker.showInfoWindow(); 

Это некрасиво, но я не нашел другого способа справиться с z-индексацией без использования информационных окон.

Это было добавлено в Google Play Services 9.2 ( 27 июня 2016 г. )

Новый MarkerOptions.zIndex() устанавливает порядок стека маркера по отношению к другим маркерам на карте. Подробнее о маркерных z-индексах и о влиянии z-индекса на события click. ( Выпуск 4688 )

Хотя это не идеальное решение! Я выяснил, как показать выбранный (постукиваемый) маркер по всем другим маркерам, потребляя событие onMarkerClick. Возвращение TRUE будет потреблять это событие, поэтому нам нужно сделать showInfoWindow и увеличить масштаб до центра

  @Override public boolean onMarkerClick(Marker marker) { //Manually open the window marker.showInfoWindow(); //Animate to center sMapFrag_v2.getMap().animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition()); //Consume the method return true; } 
Intereting Posts
Есть ли способ запустить тест Espresso с несколькими методами тестирования, но только один метод установки? RabbitMQ – Случайные очереди с именем «amq.gen- *», получающим автогенерирование Android Как выполнить метод каждые х часов или минут Как мы можем получить дату изготовления телефона Android, исправленную проверку программным путем? Android AVD не запускается Предотвратите переустановку адаптера в прокрутке Остановить вращение изображения после 360 градусов Почему зависимости могут быть включены только в выпуски? Преимущества использования Native в Android DialogFragment бросает ClassCastException, если вызвано из фрагмента Фотосъемка при записи видео на Android Проблема с URI приложения для электронной почты Gmail для Android Как установить кнопку Facebook Logout в конце навигации Невозможно перетащить кнопку поиска в scrollview Тест Robolectric работает в Android Studio, но не с помощью градиента в консоли