2013-09-23 5 views
15

Ниже приведен код для поворота маркера, но как вращать пользовательский маркер. Есть идеи?Как повернуть маркер в Картах Google?

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 
    } 
}); 

ответ

3

The API reference ничего не говорит конкретно о том, как осуществляется вращение, но так как path принимает SVG-элемент я бы сказал, вот как они управляют, чтобы повернуть его. Если вы создаете свой собственный маркер с помощью SVG, это можно сделать довольно легко, используя transform="rotate(deg centerX centerY").

+1

Спасибо, я нашел путь этого ** Символ, который является встроенным в путь символа, или пользовательский путь с помощью SVG выраженных пути обозначения. ** – sms247

+1

Точно, так что вы можете добавить свой собственный SVG -символы, используя это. HERE является примером синтаксиса. http://stackoverflow.com/questions/13125289/how-do-i-indicate-transparency-in-an-svg-path-in-google-maps-api-v3 –

+1

Нет ли другого метода, с помощью которого можно повернуть любые пользовательские образ? в приведенном выше примере вы можете написать url: «путь» пользовательского изображения, но не вращаться. – AndroidLearner

0

Вы можете использовать следующую функцию, чтобы повернуть изображение, элемент изображения и степень угла вы хотите повернуть, ноль, когда стрелка вверх на север:

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)"; 
    } 
} 

С уважением ,

Chen

+3

Ваш код устарел. Firefox (16+) и IE (10+) больше не используют префиксы, а Opera 15+ использует префикс webkit. – Spinal

+0

@Chen: Извините, я не могу вас достать, я должен использовать этот настраиваемый маркер несколько раз, и все они не имеют одинакового направления. – sms247

+1

Как вы получаете элемент маркера? –

Смежные вопросы