Это можно исправить, добавив в вашу реализацию следующее CSS:
.mapboxgl-ctrl-geocoder:first-child {
z-index: 1001;
}
. Когда вы добавляете экземпляры геокодера на карту, выполняя
map.addControl(geocoderStart);
map.addControl(geocoderEnd);
, два элемента DOM с class="mapboxgl-ctrl-geocoder mapboxgl-ctrl"
добавляются как дочерние элементы div
с class="mapboxgl-ctrl-top-right"
(если не указано альтернативное position
указывается, когда создается экземпляр MapboxGeocoder
). Как показано в исходном коде для плагина mapbox-gl-geocoder
здесь , z-index
класса .suggestions
равен 1000
, поэтому, установив z-index
объекта geocoderStart
( первый дочерний элемент от mapbox-ctrl-top-right
элемента DOM) до 1001
с указанным выше CSS, раскрывающийся список подсказок geocoderStart
будет располагаться поверх geocoderEnd
.
Вот пример JSFiddle, демонстрирующий решение в действии: https://jsfiddle.net/njevh376/ (обратите внимание, что вам придется добавить свой собственный токен доступа Mapbox, чтобы просмотреть результат).
При этом, исходя из соглашений об именах, используемых в ваш код (а именно geocoderStart
, "Starting point"
, geocoderEnd
и "Destination point"
), похоже, вы пытаетесь реализовать способ интеграции геокодирования и направлений с вашей картой GL JS. Вы можете использовать плагин mapbox-gl-directions
вместо того, чтобы пытаться повторно реализовать подобное решение. Как показано в в этом примере , плагин позволяет легко добавить эту функцию к вашей карте всего за несколько коротких строк кода. Есть также несколько опций для настройки и расширения плагина, как подробно здесь .