араметрів mapOpts містить налаштування для завантаження карти і проблем, таких як кількість завантажуваних проблем на карту, кількість елементів списку під картою, id користувача (для відображення проблем, доданих окремим користувачем, на сторінці його профілю) та ін
Етап завантаження тегів увазі виконання HTTP-запиту з передачею обраних параметрів до контролера ajax.php та отримання масиву точок (рис. 4.2), для наступного відображення їх на карті. Функція loadPlacemarks (mapOpts) у файлі placemarks.js обробляє отримані дані, відображає мітки на карті (функція showPlacemark (issue)), при необхідності створює список під картою (функція addItemToList (issue)).
Якщо разом з картою проблем використовується фільтр (на головній сторінці), то при зміні параметрів у фільтрі - виконується аналогічний асинхронний запит до контролера ajax.php < span align = "justify"> (рис. 4.2) і подальше відображення проблем, що задовольняють новим критеріям.
В
Малюнок 4.2 - Обробка AJAX-запитів
4.2 Реалізація модуля додавання проблеми
Реалізація системи має на увазі обов'язкову ідентифікацію користувача для можливості додавання якого контенту, тому для відправки проблеми, необхідно виконати перевірку авторизації користувача в системі. При вдалому вході на сайт в базі даних системи і на локальному комп'ютері користувача зберігається унікальний ідентифікатор. При завантаженні сторінки контролер сторінки main.php перевіряє наявність даного ідентифікатора. Якщо користувач авторизований, то подвійний клік по карті відкриває форму додавання інформації про проблему на міському об'єкті (рис. 4.3). Одночасно з цим на карті під покажчиком миші з'являється маркер, який вказує на розташування міського об'єкта. Координати даної мітки відправляються HTTP-запитом до сервісу геокодування API Яндекс.Карт. Геокодування надає можливість пошуку об'єкта, розміщеного на мапі за географічними координатами та визначення його адреси (зворотне геокодування). Пошуковий запит здійснюється за допомогою звернення до певного URL, а результат повертається у форматі JSON (JavaScript Object Notation - простий формат обміну даними, зручний для читання і написання як людиною, так і комп'ютером), який містить список найбільш підходящих адрес. Перший адресу зі списку приймається як вірний результат геокодування.
Далі користувач виробляє заповнення полів введення у формі, вибирає тип проблеми і виробляє прикріплення фотографій ілюструють проблему. Після натискання кнопки Відіслати дані форм, результати гео...