2014-01-19 3 views
0

Хорошо, так что это может показаться сумасшедшим вопросом, но у меня есть карта Google (API v3) на веб-сайте, и порой у меня на карте большое количество маркеров. Существуют ли какие-либо плагины, которые существуют, или как сложно было бы написать один (код стартера?), Который позволил бы пользователю разрешить нажатие клавиши Ctrl + щелчок левой кнопкой мыши и удерживать ее и позволить им «выбрать» часть карта. После чего, когда они отпускают левую кнопку мыши, я могу отключить функцию, которая могла бы обновить мою карту google, чтобы сбросить масштаб, и включить только маркеры в области выбора пользователей.Google Maps "cropping"

Я действительно очень хочу попробовать это, есть ли у кого-нибудь какие-либо указатели или идеи, которые могли бы мне помочь?

UPDATE

Хорошо, это возможно? :)

ответ

1

Я считаю, что это возможно, но я думаю, что есть лучший способ решить вашу проблему, которая должна использовать clustering.

Для кадрирования вы могли бы:

  1. Использование addDomListener событий для прослушивания 'MouseDown' на карте. Проверьте объект события, переданный обработчику, чтобы увидеть, нажата ли клавиша ctrl (e.ctrlKey).

  2. Конвертировать координаты x y для щелчка мыши на лат lng (использовать fromPointToLatLng на проекции карты). Создайте прямоугольник в позиции.

  3. Добавить addDomListener обработчик mousemove на карте. В обработчике измените размер прямоугольника с помощью setBounds.

  4. Добавить накладной обработчик AddDomListener для мыши. В обработчике захватите границы прямоугольника, удалите прямоугольник и вызовите map.fitBounds.

Я не пробовал вышеуказанное, но после всего, что набрал, я бы рекомендовал сначала попробовать кластеризацию, чтобы убедиться, что он удовлетворяет ваши потребности.

+0

Благодарим за предложение! Опция кластеризации не будет работать для меня, потому что цель уменьшения маркеров только в окне просмотра - позволить мне сделать статическое изображение карты, и если присутствует слишком много маркеров, предел URL превышен. То, что я закончил, - это использование событий «dragend» и «zoom_changed» на карте, а при каждом срабатывании - функция, которая получает ТОЛЬКО маркеры в области просмотра. Таким образом, я все еще смогу преобразовать карту в изображение, просто требуется, чтобы пользователь увеличил масштаб до области, которая не превышает предел. – Phil