У цій статті ми поговоримо про одну з найбільш багатообіцяючих можливостей API «Рамблер-Карт» - підключенні користувача віджетів.
Що таке віджети? Строго кажучи, це створені за шаблоном JS-модулі для збільшення функціональності API. Висловлюючись фігурально, якщо API - фундамент роботи з картами, то віджети - це будинок. І яким він буде - вирішувати вам. Написавши власний віджет, ви можете здійснити свої найсміливіші ідеї в області картографії.
На даний момент нами вже розроблено чотири віджета: «Маршрутизація». «Лінійка». «Пробки» і «Камери». На їх прикладі цілком можна скласти уявлення про те, що таке віджети API «Рамблер-Карт», навіщо вони потрібні і як працюють. До речі, ви можете надіслати нам ваші власні віджети і ми розмістимо їх на сайті, щоб ними могли скористатися всі!
Отже, створюємо віджет. Все необхідне для його роботи передається аргументами в метод RMap.registerWidget. Перший аргумент - ім'я віджета (для подальшого звернення до нього), другий - об'єкт з параметрами, на якому зупинимося докладно.
Потім - параметр controls. масив елементів управління віджету. У нашому випадку це одна кнопка-перемикач (SwitchButton). Серед властивостей об'єкта елемента управління слід виділити важливе funcs, що складається з switchOn і switchOff - це функції, що спрацьовують при включенні і виключенні кнопки. Тут досить передати їх імена, ми повернемося до них пізніше.
Параметр cursors дозволяє вказати, які курсори використовувати в тих чи інших ситуаціях. Скажімо, для нашого віджета вистачить одного курсора-хрестика crosshair, для точного позиціонування.
Наступний необов'язковий параметр - eventTypes - типи подій віджета, які можна використовувати, наприклад, для взаємодії з іншими віджетами.
Параметр tools - список бібліотек API, які використовуються в віджеті. До речі, нагадую, що в віджети можна і навіть потрібно використовувати будь-які доступні методи API.
І, нарешті, змінні і функції віджета.
Корисне примітка - будь-які публічні функції керування, наприклад, описані вище turnOn або turnOff. можна викликати в скрипті сторінки, користуючись виразом типу map.widgets.Location.turnOn ().
Створення віджета закінчено. Далі створений код можна розмістити прямо в тілі сторінки, але (!) Набагато зручніше зберегти його в окремому JS-модулі і підключити його поряд з API. Тоді для виклику віджета використовується метод getWidget. а скрипт на сторінці скорочується всього до пари рядків.