Проблемы с наложением круга API Google Maps v3 - PullRequest
1 голос
/ 04 апреля 2011

Ваша помощь будет высоко оценена следующим. Я использую код JS на http://jsfiddle.net/jpEwM для отображения карты Google с изменяемым наложением круга для вывода координат центральной точки, радиуса и ограничительной рамки.

Это работает хорошо, но есть несколько дополнительных функций, которые я не могу интегрировать, не нарушая код:

  1. Я хотел бы вывести название места в центре наложения, а также его координаты.

  2. Легко потерять оверлейный круг при перемещении по карте. Я хотел бы иметь возможность сделать наложение круга всегда видимым в области просмотра (т. Е. Если вы прокрутите карту достаточно далеко, чтобы потерять наложение круга, она «перепрыгнет» обратно к центру области просмотра или даже лучше позиции курсора) .

  3. Если вы увеличите карту, то можете полностью оказаться внутри оверлея. Можно ли изменить размер наложения круга при увеличении, чтобы этого не произошло?

  4. Когда я добавляю маркеры на карту из файла XML, это нарушает остальную текущую функциональность. В идеале я хотел бы использовать MarkerClusterer для этого, но базовые маркеры тоже подойдут.

Извините, что так много очков - я уже несколько недель тяну за волосы!

Большое спасибо.

1 Ответ

0 голосов
/ 06 апреля 2011

Чтобы ответить на пункт 3:

Вам необходимо добавить прослушиватель для связанных изменений:

google.maps.event.addListener(map, 'bounds_changed', function() {
    displayInfo(distanceWidget,map);
});

Обратите внимание, что я добавил параметр карты в ваш метод displayInfo, который теперь выглядит следующим образомthis:

function displayInfo(widget, map) {
    var info = document.getElementById('info');
    info.innerHTML = 'Position: ' + widget.get('position') + '<br />' + 'Distance: ' + widget.get('distance') + '<br />' + 'Bounds: ' + widget.get('bounds') +'<br/>Map bounds: '+ map.getBounds();
}

С этим изменением вы увидите, что вы можете определить, когда границы вашего distanceWidget превышают границы карты, и принять необходимые меры для уменьшения диаметра вашего виджета.

Мой форк (который включает в себя измененные выше) вашего превосходного jsFiddle находится здесь: http://jsfiddle.net/bhofmann/AT8uz/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...