3 Stimmen

Zugang zu Google Maps api Richtungsmarkierungen

Ich muss Zuhörer für Richtungsmarkierungen hinzufügen, habe aber keinen Zugang dazu. Wie kann ich Zugriff auf Richtungsmarkierungen wie einfache Markierungen erhalten? Sorry für mein schreckliches Englisch, ich hoffe, Sie können mich verstehen.

UPD: Ich erstelle eine neue Route:

var request = {
    origin: someorigin,
    destination: somedestination,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
};

directionsService.route(request, function(response, status){
    if (status == google.maps.DirectionsStatus.OK){
        directionsDisplay.setDirections(response);
    }
});

Und nun möchte ich Zugang zu den Ausgangs- und Zielmarkierungen erhalten.

0 Stimmen

Sie möchten also einen Start- und einen Zielmarker auf der Grundlage der Richtung erstellen?

0 Stimmen

Nein, ich möchte mit den grünen Markierungen "A" und "B" (Ausgangs- und Zielort) wie mit den einfachen roten Markierungen arbeiten: sie löschen oder Hörer hinzufügen.

0 Stimmen

Sie sind also nicht in der Lage, nach directionsService auf die Markierungen someorigin und somedestination zuzugreifen?

1voto

herostwist Punkte 3532

Sie können nicht auf Markierungen zugreifen, die der Karte über die Klasse google.maps.DirectionsRenderer hinzugefügt wurden. Sie können jedoch die Option suppressMarkers verwenden, die Polylinienroute rendern und dann Ihre eigenen Start- und Zielmarkierungen mit Ihren eigenen Ereignissen hinzufügen.

Ich hoffe, das hilft.

1 Stimmen

Ich danke Ihnen. Ich habe darüber nachgedacht, aber diese Lösung hat einige Einschränkungen, wenn ich die Markierung ziehen möchte. In dieser Situation muss ich setinterval() verwenden und die Route erneut rendern.

0voto

Jason Punkte 7384

Verwenden Sie einfach css:

Manchmal ist Einfachheit der Schlüssel.

Die A-Linie ist eine Tabelle:

<table id="adp-placemark" class="adp-placemark" jstcache="0">

und Linie B ist:

<table class="adp-placemark" jstcache="0">

Mit dem folgenden Css werden die Markierungen geändert:

#adp-placemark img, .adp-placemark img {
   display:none;
}
#adp-placemark {
   font-weight: bold;
   padding: 10px 10px 10px 30px;
   background: white url(../images/map_icons/number_1.png) no-repeat left center;
}
.adp-placemark {
   font-weight: bold;
   padding: 10px 10px 10px 30px;
   background: white url(../images/map_icons/number_2.png) no-repeat left center;
}

-1voto

orenbnv Punkte 39

Vorausgesetzt, Sie verwenden API V3: Sie können die Markierungen im directionsDisplay-Objekt finden.

sie sind:

directionsDisplay.b.d[0]
directionsDisplay.b.d[1]

Dementsprechend können Sie Änderungen an ihnen vornehmen und sie z. B. von der Karte entfernen:

directionsDisplay.b.d[0].setMap(null);
directionsDisplay.b.d[1].setMap(null);

Ich hoffe, das hilft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X