Почти каждый разработчик геоинформационного сервиса сталкивался с необходимостью отобразить на карте очень большое число объектов, с каждым из которых нужно взаимодействовать. Как сделать так, чтобы пользователю было комфортно работать, а браузер не задохнулся от нагрузки? Кто-то ограничивает число объектов областью видимости карты, кто-то использует кластеризацию и отображает некие множества этих объектов. Рассказ об альтернативном решении – технологии активных областей. С её помощью можно показать пользователю все доступные объекты на вашей карте, не ограничиваясь областью видимости и не разделяя объекты на множества. К тому же это решение почти не нагружает браузер и прекрасно работает даже в Internet Explorer.
27. 27
Описания активных областей
Пример
Тип
геометрии
Описание
Rectangle
Прямоугольник
Polygon
Многоугольник
ConvexPolygon
Выпуклый
многоугольник
MulDpolygon
Сложная
фигура.
Состоит
из
нескольких
многоугольников
MulDConvexPolygon
Сложная
фигура.
Состоит
из
нескольких
выпуклых
многоугольников
28. 28
Описания активных областей
• JSON
• Для всех уровней масштабирования
• Уникальные идентификаторы в пределах
слоя
• Пиксельные координаты
• Строгий тип геометрии
• Могут содержать данные
32. 32
Источник данных. JSONP
1. API формирует callback функцию
2. API в запросе к серверу передает имя
callback функции
3. Сервер оборачивает данные в callback
функцию, взяв ее имя из запроса
4. API выполняет callback функцию с
полученными от сервера данными
33. 33
Источник данных. JSONP
1. API формирует callback функцию
2. API в запросе к серверу передает имя
callback функции
3. Сервер оборачивает данные в callback
функцию, взяв ее имя из запроса
4. API выполняет callback функцию с
полученными от сервера данными
34. 34
Источник данных. JSONP. Шаблоны
1. API формирует callback функцию по
шаблону (callback_%x_%y_%z)
2. API запрашивает данные от сервера, уже
обернутые в функцию заданную по шаблону
3. API выполняет callback функцию с
полученными от сервера данными
35. 35
Источник данных. Бонусы
• Переопределение метода restrict(layer,
tileNumber, zoom) для уменьшения числа
запросов к серверу (http://bit.ly/APIhotspot)
• Кэширование ответа сервера
36. 36
Источник данных
• JSONP
• Создается с помощью класса ObjectSource
• Шаблон пути к данным
• Необязательный jsonp-callback
• Кэширование
48. 48
Технология активных областей
менеджер
хотспотов
событие
на
карте
список
контейнеров
контейнер
шейпов
слоев
шейп
шейп
шейп
описания
активных
областей
источник
данных
слой
49. 49
Технология активных областей
менеджер
хотспотов
событие
на
карте
список
контейнеров
контейнер
шейпов
слоев
контейнер
шейпов
оверлеев
шейп
шейп
шейп
описания
активных
областей
источник
данных
слой
шейп
шейп
шейп
53. 53
* не работает в браузерах, не поддерживающих canvas
map.options.set({!
!geoObjectOverlayFactory:'default#interactiveGraphics’!
});!
Строка изменившая мир *