Wie erstellt man ein Text-Overlay in Google Maps API v3, das nicht geschwenkt werden kann?

7

Ich verwende Google Maps API v3. Ich möchte eine Textüberlagerung auf einer Karte erstellen, die sich nicht bewegt, wenn die Karte verschoben wird. Ist der beste Ansatz, um die DOM-Elemente zu bearbeiten, auf die vom MapPanes-Objekt aus zugegriffen werden kann, oder ist es am besten, ein benutzerdefiniertes Steuerelement zu erstellen, obwohl es nur Text anzeigen würde?

    
DaveBurns 24.02.2011, 02:56
quelle

2 Antworten

21

Der einfachste Weg, den ich gefunden habe, bestand darin, ein paar Zeilen JavaScript hinzuzufügen, nachdem ich eine neue Karte erstellt hatte. Also, danach:

%Vor%

füge folgendes hinzu:

%Vor%

Sie werden wahrscheinlich den Text so gestalten wollen, dass er schöner aussieht.

Eine Alternative ist, das div in Ihren HTML-Code einzufügen:

%Vor%

und tu dies dann in deinem JavaScript:

%Vor%

HINWEIS ein wichtiger Unterschied: Wenn Sie die HTML-Route verwenden, um Ihr div zu definieren, müssen Sie den Positionsstil im HTML auf absolut setzen, um Probleme beim Rendern zu vermeiden.

    
DaveBurns 27.02.2011, 15:29
quelle
5

Nach Ihrer Beschreibung wäre der beste Ansatz ein benutzerdefiniertes Steuerelement. Google Docs ist dafür hier . Benutzerdefinierte Steuerelemente können so einfach oder kompliziert sein, wie Sie möchten.

Ein Grund, warum du mit den Kartenfenstern herumalbern möchtest, ist, wenn du willst, dass eine solche Kontrolle unter den Markierungen / Schatten / Polylinien usw. liegt. Ich mache das gerade jetzt, um ein Fadenkreuz in der Mitte zu zeigen der Karte zu jeder Zeit. Aber weil ich es als Overlay verwalte, wähle ich die Fenster so, dass die Marker darüber liegen, damit sie weiter geklickt werden und mit ihnen interagieren können - mit mapPane . Hier ist, wie ich es mache:

%Vor%

Der Grund dafür, dass maptypeid_changed einen eigenen Handler mit defer hat, liegt daran, dass das Ereignis ausgelöst wird, bevor sich die Karte beim Ändern des Typs ordnungsgemäß eingerichtet hat. Führen Sie einfach Ihre Funktion nach der aktuellen Ereignisschleife aus.

    
Sudhir Jonathan 24.02.2011 05:33
quelle