Я играю с API Карт Google (v3), и я столкнулся с проблемой с значками маркеров. Я пытаюсь изменить размер моих маркеров в зависимости от их индивидуальных атрибутов данных.
Иконы сами находятся в спрайте, который содержит три разных круглых маркера, каждый из 16 пикселей на 16 пикселей. Я пытаюсь масштабировать отдельные значки, но пока не увенчался успехом.
Здесь мой код:
var offset = Math.floor(Math.random() * 3) * 16; // pick one of the three icons in the sprite
// Calculate desired pixel-size of the marker
var size = Math.floor(4*(count-1) + 8);
// Create custom marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
icon: new google.maps.MarkerImage(
'img/dot.png', // my sprite with 3 circular icons
new google.maps.Size(16, 16), // 16x16 is the original size of each individual icon
new google.maps.Point(0, offset), // picking one of the three icons in the sprite
new google.maps.Point(Math.floor(size/2), Math.floor(size/2)), // setting correct anchor for the marker
new google.maps.Size(size, size) // trying to scale the marker
)
});
Проблема, кажется, в последней строке, где я пытаюсь масштабировать значок маркера до нужного размера. Вместо правильного масштабирования я получаю странный, искаженный значок в форме эллипса.
Что я делаю неправильно?