Я изо всех сил пытаюсь упорядочить свои слои правильно.
http://fiddle.jshell.net/zw8TR/6/
У меня есть карта с несколькими разными слоями: обычные плитки (через Mapbox), плитки карты Google, полигоны карты мира Geojson (преобразованные из Topojson), маркеры и полилинии.
Проблема начинается с фрагментов карты Google — они располагаются выше по z-индексу, чем обычные фрагменты, И маркеры / полилинии, скрывающие все остальное. Я исправил это с помощью CSS.
(Кроме того: по моему опыту это не имеет смысла — z-индекс наследуется, и, таким образом, если у родителя z-индекс равен 1, у дочернего элемента не может быть ничего, кроме z-индекса. -index 1. Вы можете видеть, что прямой дочерний элемент .leaflet-google-layer
имеет встроенный z-индекс 0, а фактические плитки (которые являются дочерними) имеют z-индекс 200+, который, по-видимому, учитывается в браузере. не понимаю, почему это происходит. Разве z-index НЕ наследуется, если добавлен встроенный?)
Далее, по умолчанию Leaflet помещает мои geoJson
полигона в слой Overlay. Внутри есть SVG, который перемещается и масштабируется вместе с картой (приятно!). Однако мои полилинии также добавлены в тот же SVG вверху и теперь скрыты векторной картой. SVG имеет следующий встроенный атрибут — style="transform: translate3d(...);"
. Поскольку это вызывает 3D, z-index больше не работает, чтобы решить проблему.
Я хотел бы контролировать, как мои слои добавляются в DOM. Моя векторная карта geoJson (и плитки карты Google, если это возможно) должна находиться со слоями плитки, добавив в div .leaflet-tile-pane
. Я попытался выполнить эту демонстрацию, чтобы вручную добавить "панели", но получил ошибку (строка 19 в моем скрипка):
Object [object Object] has no method 'getContainer'
or
Uncaught NotFoundError: An attempt was made to reference a Node in a context where it does not exist.
когда я удаляю метод. Я подозреваю, что это потому, что слой, который я пытаюсь создать, не является слоем плитки, но я не знаю, как это исправить.
После всего этого я был бы рад узнать: как мне удалить мой слой geoJson из .leaflet-overlay-pane
??