4 Stimmen

Entfernen der Google Maps V3 Marker Drag-Animation?

Wenn ich einen Marker ziehe und ablege, hebt er sich ein wenig an und darunter erscheint ein schräges X, um die Ziehposition anzuzeigen.

Gibt es eine Möglichkeit, das vollständig loszuwerden? Ich habe benutzerdefinierte Marker und möchte ihren Ziehzustand auf eine andere Weise anzeigen.

8voto

Charles Ouellet Punkte 6088

Sie können die Eigenschaft des Markers raiseOnDrag auf false setzen

var marker = new google.maps.Marker({
  draggable: true,
  map: map,
  raiseOnDrag: false
});

Dann könnten Sie die ScottE-Lösung verwenden, um einen benutzerdefinierten Zieheffekt zu erstellen.

0 Stimmen

raiseOnDrag ist immer noch eine nicht dokumentierte Eigenschaft. Verwenden auf eigene Gefahr.

4voto

MrUpsidown Punkte 20699

raiseOnDrag ist in der aktuellen API-Version (3.17) nicht dokumentiert. Stattdessen gibt es eine crossOnDrag Eigenschaft:

crossOnDrag : boolean - Wenn false, wird das Kreuz deaktiviert, das unter dem Marker erscheint, wenn er gezogen wird. Diese Option ist standardmäßig auf true gesetzt.

https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions


Bearbeitung (Sep. 2016): raiseOnDrag ist immer noch in 3.25 nicht dokumentiert

-1voto

ScottE Punkte 21245

Ich glaube nicht, dass dies möglich ist. Sie können das Marker-Symbol beim Dragstart / Dragend ändern, aber das ändert nicht das 'x', das darunter angezeigt wird.

Hier ist ein Beispiel, wie man das Marker-Symbol beim Ziehen ändert:

http://gmaps-samples-v3.googlecode.com/svn/trunk/draggable-markers/draggable-imagechange.html

Wenn Sie sich die Bilder ansehen, werden Sie feststellen, dass das 'x' nicht Teil der PNG-Datei ist.

0 Stimmen

Ich habe auch nichts gefunden, wenn ich bis nächste Woche immer noch ratlos bin, werde ich deine Antwort akzeptieren. Vielen Dank.

0 Stimmen

Dies ist immer noch die akzeptierte Antwort, 5 Jahre später, obwohl sie die Frage des Fragestellers nicht beantwortet.

0 Stimmen

Heruntervoten, weil es eine API gibt, wie es die andere Antwort zeigt

-1voto

tim Punkte 3617

Sie müssen dann auch das ursprüngliche Bild wieder einschalten im dragend Ereignis.

Vollständiger Code sieht so aus:

myArrow         = new google.maps.MarkerImage("defaultIcon.png"); 
myArrowDrag     = new google.maps.MarkerImage("draggingIcon.png"); 

myMarker = new google.maps.Marker({
    position    : new google.maps.LatLng(myLat, myLng),
    map         : map,
    icon        : myArrow,
    draggable   : true,
    raiseOnDrag : false
});

google.maps.event.addListener(myMarker, 'dragstart', function() {
    myMarker.setOptions({icon: myArrowDrag});
});
google.maps.event.addListener(myMarker, 'dragend', function() {
    myMarker.setOptions({icon: myArrow});
});

0 Stimmen

Dies macht Gebrauch von nicht dokumentierten Eigenschaften und beantwortet nicht die Frage des OP.

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