Как создать круг в google map v3 с одинаковым радиусом во всех масштабах?
Я работаю над миграцией кода карты с v2 на v3.
В v2 я создаю круг с помощью GProjection и Overlay, и он будет выглядеть одинаковым для всех уровней масштабирования.
В v3 google дает класс Circle, который создаст круг на карте, но он изменится в разных уровнях масштабирования.
Я хочу создать круг, который будет иметь одинаковый размер во всех уровнях масштабирования.
Я хочу знать любой другой способ в google map v3 тем, что я могу создать круг с одинаковым размером для всех уровней масштабирования.
Спасибо заранее.
Ответы
Ответ 1
Чтобы создать круги с одинаковым размером пикселей на экране (в сравнении с тем же размером области в географических координатах), вы традиционно используете маркер с пользовательской иконкой в форме круга. Но теперь вы можете быть более гибкими и использовать относительно новые символы в версии 3.
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-122.5,47.5),
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillOpacity: 0.5,
fillColor: '#ff0000',
strokeOpacity: 1.0,
strokeColor: '#fff000',
strokeWeight: 3.0,
scale: 20 //pixels
}
});
Кроме того: вы также можете сделать классные анимации из этих символов: http://googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html
Ответ 2
Я использую этот код для управления кругами масштабирования и масштабирования на моей карте Google V3:
google.maps.event.addListener(iMap.map, 'zoom_changed', function () {
for (var i = 0; i < iMap.circle.length; i++) {
var p = Math.pow(2, (21 - iMap.map.getZoom()));
iMap.circle[i].setRadius(p * 1128.497220 * 0.0027);
}
menu.hide();
});