2013-09-23 17 views
15

Poniżej przedstawiono kod do obrócenia znacznika, ale jak obrócić niestandardowy znacznik. Dowolny pomysł?Jak obrócić znacznik w Google Maps?

var angleDegrees = 150; 
new google.maps.Marker({ 
    position: a, 
    map: map, 
    icon: { 
     path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW, 
     scale: 6, 
     fillColor: "red", 
     fillOpacity: 0.8, 
     strokeWeight: 2, 
     rotation: angleDegrees //this is how to rotate the pointer 
    } 
}); 

Odpowiedz

3

The API reference nic nie mówi konkretnie o jaki obrót odbywa się jednak od path bierze SVG-elementowa powiedziałbym to jak udaje im się go obrócić. Jeśli utworzysz własny znacznik przy użyciu SVG, możesz to zrobić całkiem łatwo, używając transform="rotate(deg centerX centerY").

+1

Dzięki, znalazłem ścieżkę tego ** symbolu, którym jest wbudowany symbol ścieżka lub droga zwyczaj wyrażone za pomocą notacji ścieżka SVG. ** – sms247

+1

Dokładnie, więc można dodać własny SVG -symboly używające tego. HEre jest przykładem wymaganej składni. http://stackoverflow.com/questions/13125289/how-do-i-indicate-transparency-in-an-svg-path-in-google-maps-api-v3 –

+1

Czy nie istnieje żadna inna metoda, która pozwala na obracanie dowolnych niestandardowych obraz? w powyższym przykładzie możesz wpisać adres URL: "ścieżkę" niestandardowego obrazu, ale nie obraca się. – AndroidLearner

0

można użyć następujących funkcji, aby obrócić obraz, elementem jest obraz i stopień jest kąt chcesz obrócić, zero, gdy strzałka znajduje się na północy:

function (element, degree) { 
    if (navigator.userAgent.match("Chrome")) { 
     element.style.WebkitTransform = "rotate(" + degree + "deg)"; 
    } 
    else if (navigator.userAgent.match("Firefox")) { 
     element.style.MozTransform = "rotate(" + degree + "deg)"; 
    } 
    else if (navigator.userAgent.match("MSIE")) { 
     element.style.msTransform = "rotate(" + degree + "deg)"; 
    } 
    else if (navigator.userAgent.match("Opera")) { 
     element.style.OTransform = "rotate(" + degree + "deg)"; 
    } 
    else { 
     element.style.transform = "rotate(" + degree + "deg)"; 
    } 
} 

pozdrawiam ,

Chen

+3

Twój kod jest nieaktualny. Firefox (16+) i IE (10+) nie używają prefiksów, a Opera 15+ używa prefiksu webkita. – Spinal

+0

@Chen: Przepraszam, nie mogę cię zdobyć, muszę użyć tego niestandardowego znacznika wiele razy, a wszystkie nie mają tego samego kierunku. – sms247

+1

Jak uzyskać element znacznika? –

Powiązane problemy