/*
* Let's GO!
*/
var myMap;
var categories = Array();
var points = Array();
var markers; // Используется для кластеризации
var layer;
var layers = Array();
var defaultZoom = 13;
categories.simplepoint = L.icon({
iconUrl: '/ico/simplepoint.png',
iconSize: [13, 13],
iconAnchor: [7, 7],
popupAnchor: [7, 7]
});
categories.targetpoint = L.icon({
iconUrl: '/ico/infogreen.png',
iconSize: [32, 37],
iconAnchor: [16, 37],
popupAnchor: [0, 1]
});
// -----------------------------------------------------------------------------
/**
* Инициализируем яндекс-карты и узнаём расположение пользователя.
*/
$(document).ready(function(){
init(pointLat, pointLng);
});
/**
* Инициализируем переменные и подгружаем данные.
* @returns true
*/
function init(lat, lng) {
myMap = L.map('map', {zoomControl: true}).setView([lat, lng], defaultZoom);
markers = new L.MarkerClusterGroup({showCoverageOnHover: false, maxClusterRadius: 45});
// layers['quest'] = L.tileLayer('https://otile1-s.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png', {attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox | Points data © WIKIPOINTS.RU', maxZoom: 18});
layers['osm'] = L.tileLayer('//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Points data © WIKIPOINTS.RU', maxZoom: 18});
setLayer('osm');
initPoints()
myMap.on('click', function (e) {
if (!myMap._popup) {
closePopup();
}
});
return true;
}
/**
* Создаёт точку для карты - Placemark.
* @param {Array} data
* @returns {Array}
*/
function constructPoint(data)
{
id = data['id'];
icon = (id == pointId)?categories.targetpoint:categories.simplepoint;
points[id] = L.marker(
[data['lat'], data['lng']], {icon: icon, title: data['name'], id: id, categoryId: data['categoryId']}
).on('click', function (e) {
window.location.href = "/point/"+e.target.options.id;
});
return points[id];
}
/**
* Загружает точки с сервера.
* @returns {Boolean}
*/
function initPoints()
{
$.ajax({
url: "/json/points/",
success: function (data) {
for(var i=0; i