Faltblatt / Google Map-Basisschicht / Markierungen nicht sichtbar

8

Neu in Leaflet, derzeit wird versucht, ein Projekt von nativem Google Maps nach Leaflet zu migrieren. Das Layer-Management und die Optionen zur Verwendung besserer Grundkarten im Roadmap-Stil haben Leaflet angezogen.

Habe das Plugin heruntergeladen, um Google Map-Kacheln als Basiskarte für Leaflet zu verwenden, und es funktioniert hervorragend als Basisebene.

Ich habe jedoch ein Problem gefunden und bin mit Leaflet nicht ausreichend erfahren, um zu verstehen, warum. Ich habe Marker, die mit jeder anderen Basisschicht sichtbar sind - aber nicht mit Google. Habe versucht, die Z-Ordnung hoch zu erzwingen (1000 usw.), aber es macht keinen Unterschied. Die Deckkraft der Marker beträgt 1,0

Markierungen sind auf allen anderen Ebenen (z. B. OSM) sichtbar. Wenn ich die Basis zu Google (Satellit oder Karte) wechsle, werden sie nicht mehr angezeigt, sondern wechseln zurück zu einer Basis, die nicht von Google stammt, und sie sind wieder da.

Der Grund, warum ich die Google-Basisebene verfolge, ist, dass Google (soweit mir bekannt ist) der einzige Anbieter von detaillierten, konsistenten Luftbildkacheln für meine Region von Interesse ist. Sie möchten andere Karten verwenden, haben jedoch die Möglichkeit, über den Ebenenmanager zu einer Google-Satellitenansicht zu wechseln.

Derzeit wird Leaflet v0.4.5 verwendet (aber auch v0.4 ausprobiert). Dieselben Symptome treten bei verschiedenen Browsern (IE, FF usw.) auf.

Wäre dankbar für jede Hilfe.

Dave Martin
quelle

Antworten:

13

Nur eine schnelle Lösung: Mit dem Z-Index waren Sie auf dem richtigen Weg. Versuchen Sie, dies zu Ihrer eigenen CSS-Datei hinzuzufügen (kann andere Dinge beschädigen! Ich habe es einfach dazu gebracht, die Markierungen anzuzeigen):

.leaflet-map-pane {
    z-index: 2 !important;
}

.leaflet-google-layer {
    z-index: 1 !important;
}
AndyL
quelle
Andy, vielen Dank - das hat es perfekt behoben und keine anderen Nebenwirkungen, die ich sehen kann (zumindest bisher!). Hatte mir die Broschüre des Google Maps-Plugin-Codes angesehen und festgestellt, dass sie "insertAtTheBottom" verwendet, was meines Wissens jetzt veraltet ist. Dave
Dave Martin
0

Habe das Plugin heruntergeladen, um Google Map-Kacheln als Basiskarte für Leaflet zu verwenden

Um ganz klar zu sein, dies verstößt gegen die Nutzungsbedingungen von Google. Gehen Sie daher vorsichtig vor.

tmcw
quelle
1
Nicht, wenn er ( psha.org.ru/leaflet/Google.js ) verwendet, was er vermutlich verwendet. Es ist über die Karten-API geschrieben, es ist also keine Verletzung der Nutzungsbedingungen.
AndyL
Tom / Andy, Danke für die Kommentare. Tom - wir verwenden Google Maps immer noch "nativ" für statische Karten und wo ich eine einzelne Site oder einen einzelnen Site-Typ anzeigen muss. Ich versuche jedoch, den Abschnitt zu migrieren, der viele Markierungen verschiedener Typen enthält, damit wir die Ebenenumschaltung von Leaflet nutzen können (und auch zu alternativen Basiskartenanbietern wechseln können). Es tut mir leid, wenn meine ursprüngliche Nachricht dies nicht klargestellt hat, aber wir tun dies, wie Andy erwähnte, indem wir das Leaflet Google Maps-Plugin verwenden, das wiederum die Google Maps v3-API verwendet - wir versuchen nicht, das aufzurufen Fliesen direkt. Dave
Dave Martin
0

Einige andere Zahlen in den Z-Indizes, die an anderer Stelle gezeigt wurden, haben an meinem Ende funktioniert. Cross-Posting von hier: https://gist.github.com/crofty/2197042#comment-1234339

.leaflet-google-layer{
    z-index: 0 !important;
}
.leaflet-map-pane{
    z-index: 100;
}

(Fügen Sie dies in das CSS oder den <style>Abschnitt Ihrer Webseite ein. )

Nikhil VJ
quelle
0

Versuchen Sie dies in Ihr CSS aufzunehmen:

.leaflet-google-layer {
    z-index: inherit;
}

Das hat mir in der gleichen Situation geholfen

Horn
quelle