2012-11-20 5 views
1

У меня есть некоторые проблемы со ссылкой на бинговые карты сенсорных элементов управления Ajax7.bing maps touch polygone взаимодействие

Я положил несколько полигонов поверх интерфейса бингмапов, чтобы отображать цветные географические региональные формы. Теперь, когда пользователь панорамирует карту или увеличивает/уменьшает масштаб, огромное количество полигонов, отображаемых на карте, приведет к задержкам с производительностью.

Этот код толкает многоугольников на карте:

Overlay_Tmp = новый Microsoft.Maps.Polygon (region.Shape, region.colortheme);

map.entities.push (Overlay_Tmp);

https://dl.dropbox.com/u/85251516/poly.png

По этой причине я решил установить эти многоугольников невидимым, когда пользователь панорамирование/масштабирование карты.

взаимодействие пользователя должен быть Cought, наблюдая за «viewchangestart»/«viewchangeend» событие, связанное с Бинг карты, которая обожженная когда MapView изменяется панорамирование/масштабирования и т.д.

Microsoft. Maps.Events.addHandler (карта, 'viewchangestart', VC_START);
Microsoft.Maps.Events.addHandler (карта, 'viewchangeend', VC_END);

Это прекрасно работает, пока я взаимодействую с интерфейсом пустой карты. viewchangestart запускается при панорамировании/масштабировании карты, а viewchangeend запускается при остановке панорамирования/масштабирования.

С другой стороны, он не будет работать нормально, если одно и то же действие выполняется внутри полигонального наложения. После того, как viewchangestart запущен, открывается сценарий просмотра, поэтому вся идея не срабатывает.

Есть ли кто-нибудь, кто боролся с подобными проблемами с полигональными накладками или получил несколько лучших идей для меня?

Спасибо!

ответ

0

Мероприятия зажигаются, как ожидалось. Один логический элемент, который вы могли бы добавить, - вычислить ограничивающий прямоугольник многоугольника (передать координаты в locationRect). Затем проверьте, перекрывается ли ограничивающая рамка с ограничивающей рамкой карты. Если он не скрывает карту.