###Демо-страница | Скачать
Модуль jQuery Mapi предназначен для инициализации карт на основе JSON-объекта. Поддерживаемые системы: Яндекс.Карты (RUS), Google Maps (MULTI), 2GIS (RUS).
######Модуль тестировался только в Google Chrome с jQuery 1.11.1 ввиду недостатка времени.
####Преимущества
- Предустановленные, наиболее популярные настройки карт.
- Генерация идентичных карт с использованием разных провайдеров, что дает возможность быстро менять провайдеров, если один из них не показывает нужные объекты или не удовлетворяет заказчика.
- Данные подгружаются из внешнего файла, что дает возможность легко собрать модуль для CMS.
###Подключение
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="/jquery.mapi.js"></script>Подключение API провайдеров (требуется подключение только необходимых API).
<script type="text/javascript" src="http://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&language=ru"></script>
<script type="text/javascript" src="http://maps.api.2gis.ru/2.0/loader.js?pkg=basic" data-id="dgLoader"></script>Данные для карты (JSON-объект)
<!-- В теге HEAD -->
<meta name="mapi:storage-url" content="/jQueryMapi/demo/storage.json">Демо-пример JSON-объекта.
###Использование
Для автоматической инициализации требуется добавить контейнеру id, который будет соответствовать id в JSON-объекте и класс mapi.
<div id="map1" style="width:300px;height:200px;" class="mapi"></div> Не рекомендуется инициализировать карту при загрузки страницы, если карта по-умолчанию скрыта от пользователя, например ч/з display:none;. В таком случае параметры ширины и высоты не всегда и у всех провайдеров определяются верно и модуль выглядит не корректно. Есть «фиксы», которые решают проблему с каждым конкретным провайдером, но их требуется настраивать вручную.
#####Второй метод инициализации ч/з функцию, с указанием ID.
<!-- HTML -->
<div id="map1" style="width:300px;height:200px;"></div>/* JavaScript */
mapi( "map1" );В данном методе модуль будет искать id равный map1 в JSON-объекте с данными. Если id не будет найден — инициализация не произойдет.
Данный метод имеет «надстройку» на jQuery, вызов можно совершить след. образом:
/* JavaScript */
var $map = $("#map1");
$map.mapi();