У меня есть карта, которая загружает контуры зданий из GeoJSON. Она также поддерживает Street View, к которому можно получить доступ через Pegman. Когда я перетаскиваю Pegman на карте, геометрические объекты отображаются над объектами Street View.
Мне нужно понять, возможно ли разместить слой Street View выше слоя с GeoJSON, чтобы объекты из Street View были выше контуров зданий из GeoJSON.
Я изучил документацию Google Maps JavaScript API и проводил поиски, но не нашел информации о том, как изменить порядок слоев, как это можно сделать в OpenLayers и Leaflet.
Вот скриншот проблемы, где видно, как тропинка и 360-панорама частично перекрыты GeoJSON.
Попробуй через z-index в стилях для data layer. Поставь более низкий z-index для GeoJSON слоя, когда включается Street View. Хотя не знаю, насколько стабильно это работает во всех версиях API. Какую версию Maps API используешь?
К сожалению, в Google Maps API нет возможности изменить порядок слоев, как это делает OpenLayers. Но есть несколько обходных путей. Например, можно отключать GeoJSON, когда включается Street View, или уменьшить прозрачность контуров зданий. Еще один вариант - переключать слои в зависимости от состояния карты. Я сам сталкивался с этой проблемой, и события dragstart и dragend для Pegman отлично помогают управлять тем, что отображается.
Да, классическая проблема с Google Maps API. Я решаю через управление видимостью GeoJSON слоя. Подписываюсь на visible_changed у Street View панорамы и меняю fillOpacity с strokeOpacity у data layer’а. Street View активен - делаю контуры почти прозрачными (opacity: 0.1), закрывается - возвращаю обратно. Не идеально, но работает.