2013-09-23 67 views
15

Sau đây là mã để xoay điểm đánh dấu, nhưng cách xoay một điểm đánh dấu tùy chỉnh. Bất kỳ ý tưởng?Làm cách nào để xoay điểm đánh dấu trong 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 
    } 
}); 

Trả lời

3

Các API reference không nói bất cứ điều gì cụ thể về luân chuyển được thực hiện như thế nào nhưng vì path mất một phần tử SVG Tôi muốn nói thats cách họ quản lý để xoay nó. Nếu bạn tạo điểm đánh dấu tùy chỉnh của mình bằng cách sử dụng SVG, nó có thể được thực hiện khá dễ dàng bằng cách sử dụng transform="rotate(deg centerX centerY").

+1

Cảm ơn, tôi tìm thấy con đường này ** của biểu tượng, mà là một built-in con đường biểu tượng, hoặc một đường dẫn tùy chỉnh được biểu diễn bằng ký hiệu đường SVG. ** – sms247

+1

Chính xác, vì vậy bạn có thể thêm SVG của riêng bạn -sử dụng các biểu tượng đó. HEre là một ví dụ về cú pháp cần thiết. http://stackoverflow.com/questions/13125289/how-do-i-indicate-transparency-in-an-svg-path-in-google-maps-api-v3 –

+1

Không có phương pháp nào khác mà chúng tôi có thể xoay bất kỳ tùy chỉnh nào hình ảnh? trong ví dụ trên, bạn có thể viết url: 'path' của hình ảnh tùy chỉnh nhưng nó không quay. – AndroidLearner

0

Bạn có thể sử dụng chức năng sau đây để xoay hình ảnh, yếu tố là hình ảnh và mức độ là góc bạn muốn xoay, zero là khi một mũi tên lên ở phía bắc:

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

Trân trọng ,

Chen

+3

Mã của bạn đã lỗi thời. Firefox (16+) và IE (10+) không sử dụng tiền tố nữa và Opera 15+ sử dụng tiền tố webkit. – Spinal

+0

@Chen: Rất tiếc, tôi không thể giúp bạn, tôi phải sử dụng điểm đánh dấu tùy chỉnh đó nhiều lần và tất cả đều không có cùng hướng. – sms247

+1

Làm thế nào để bạn nhận được phần tử đánh dấu? –

Các vấn đề liên quan