MediaWiki:Common.js — различия между версиями
Материал из Энциклопедия фонда «Хайазг»
Строка 11: | Строка 11: | ||
*/ | */ | ||
//МАКЕТ ДЛЯ БАЛУНА ОДНОЙ ТОЧКИ | //МАКЕТ ДЛЯ БАЛУНА ОДНОЙ ТОЧКИ | ||
− | var myBalloonContentLayout = ymaps.templateLayoutFactory.createClass('< | + | // Макет заголовка балуна, в нем сразу и данные |
− | // Создание макета основного содержимого контента балуна. | + | var myBalloonContentLayout = ymaps.templateLayoutFactory.createClass('<div class="bal-div"> $[properties.clusterCaption]<br /><br />$[properties.balloonContentBody]</div>'); |
− | var myBalloonContentBodyLayout = ymaps.templateLayoutFactory.createClass( | + | |
− | '$[properties.clusterCaption]<br /><br />$[properties.balloonContentBody]<br /><br />', { | + | // Создание макета основного содержимого контента балуна. |
− | + | // var myBalloonContentBodyLayout = ymaps.templateLayoutFactory.createClass( | |
− | + | // '$[properties.clusterCaption]<br /><br />$[properties.balloonContentBody]<br /><br />', { | |
− | + | // build: function () { | |
− | + | // this.constructor.superclass.build.call(this); | |
− | }); | + | // } |
+ | // }); | ||
//МАКЕТ ДЛЯ БАЛУНА КЛАСТЕРА (НЕСКОЛЬКИХ ТОЧЕК) | //МАКЕТ ДЛЯ БАЛУНА КЛАСТЕРА (НЕСКОЛЬКИХ ТОЧЕК) | ||
Строка 52: | Строка 53: | ||
val2 = val2.replace(regimg, 'href=\"http://draft.hayazg.info/' + ref + '\"'); | val2 = val2.replace(regimg, 'href=\"http://draft.hayazg.info/' + ref + '\"'); | ||
//создание переменной для содержимого балуна | //создание переменной для содержимого балуна | ||
− | var tab_content = | + | var tab_content = val2 + '<br>' + val4; |
//создание переменной для геокодинга | //создание переменной для геокодинга | ||
var mygeocod = ymaps.geocode(val, {results:1}); | var mygeocod = ymaps.geocode(val, {results:1}); | ||
Строка 65: | Строка 66: | ||
(point, | (point, | ||
{ | { | ||
− | clusterCaption: val4, | + | // данные в заголовке, уже использованы в tab_content |
+ | // clusterCaption: val4, | ||
balloonContentBody: tab_content | balloonContentBody: tab_content | ||
}, | }, | ||
{ | { | ||
+ | // применение шаблона макета | ||
// balloonContentBodyLayout: myBalloonContentBodyLayout, | // balloonContentBodyLayout: myBalloonContentBodyLayout, | ||
balloonContentLayout: myBalloonContentLayout, | balloonContentLayout: myBalloonContentLayout, |
Версия 14:26, 15 октября 2012
/* Размещённый здесь JavaScript код будет загружаться всем пользователям при обращении к каждой странице */
//получает адреса, обрабатывает и отображает точки на карте
function ymGeocod(val, val2, val3, val4)
{
/*
val -адрес
val2-картинка
val3-статус объекта
val4-название объекта
*/
//МАКЕТ ДЛЯ БАЛУНА ОДНОЙ ТОЧКИ
// Макет заголовка балуна, в нем сразу и данные
var myBalloonContentLayout = ymaps.templateLayoutFactory.createClass('<div class="bal-div"> $[properties.clusterCaption]<br /><br />$[properties.balloonContentBody]</div>');
// Создание макета основного содержимого контента балуна.
// var myBalloonContentBodyLayout = ymaps.templateLayoutFactory.createClass(
// '$[properties.clusterCaption]<br /><br />$[properties.balloonContentBody]<br /><br />', {
// build: function () {
// this.constructor.superclass.build.call(this);
// }
// });
//МАКЕТ ДЛЯ БАЛУНА КЛАСТЕРА (НЕСКОЛЬКИХ ТОЧЕК)
var myClusterBalloonLayout =ymaps.templateLayoutFactory.createClass("", {
build: function () {
geoObjects = this.getData().properties.get('geoObjects');
var parent = this.getParentElement(),
content = "<div class='bal-div-home'>";
for (var i = 0, l = geoObjects.length; i < l; i++)
{
balloonContentBody = geoObjects[i].properties.get("balloonContentBody");
content += "<div class='bal-div'>" + balloonContentBody + "</div>";
}
content+="</div>";
parent.innerHTML = content;
}
});
//ПРИМЕНЕНИЕ МАКЕТА К КЛАСТЕРУ
cluster.options.set({
balloonContentLayout: myClusterBalloonLayout,
})
// регулярки для замен входящей инфы
var re= /\s/g,
regimg = /href=".*?"/g,
//преобразование названия для использоваиня в ссылке
ref = val4.replace(re,'_');
val2 = val2.replace(regimg, 'href=\"http://draft.hayazg.info/' + ref + '\"');
//создание переменной для содержимого балуна
var tab_content = val2 + '<br>' + val4;
//создание переменной для геокодинга
var mygeocod = ymaps.geocode(val, {results:1});
//после обработки делаем функцию...
mygeocod.then(
function(res){
if(res.geoObjects.getLength()) {
//координаты точки для маркера
var point = res.geoObjects.get(0).geometry.getCoordinates();
//plac- маркер с контентом, его передать в кластерер
var plac = new ymaps.Placemark
(point,
{
// данные в заголовке, уже использованы в tab_content
// clusterCaption: val4,
balloonContentBody: tab_content
},
{
// применение шаблона макета
// balloonContentBodyLayout: myBalloonContentBodyLayout,
balloonContentLayout: myBalloonContentLayout,
// preset: 'twirl#nightStretchyIcon'
}
);
//добавление маркеров в кластерер
cluster.add(plac);
//отображение кластерера на карте
myMap.geoObjects.add(cluster);
}
}
)
}
//центральная функция
function ymInit(S_all)
{
//обработка события наведения на пункты балуна
jQuery(function() {
jQuery("#var").live("mouseover", function(e){
jQuery("#clusterBody").html(this.value);
});
})
// Создаем кластеризатор со стандартными иконками
cluster = new ymaps.Clusterer();//{clusterIcons : clusterIcons});
//создание кластеризатора с пользовательскими иконками
//cluster = new ymaps.Clusterer({clusterIcons : clusterIcons});
// Создание экземпляра карты myMap и его привязка к контейнеру с
// заданным id ("map")
myMap = new ymaps.Map('map', {
center: [47.23,39.73],
zoom: 10,
});
//добавление инструментов для просмотра
myMap.controls
// Кнопка изменения масштаба
.add('zoomControl')
// Список типов карты
.add('typeSelector')
// Стандартный набор кнопок
.add('mapTools');
//скролл колесиком
myMap.behaviors.enable('scrollZoom');
//обработка входящей информации
/*
A_all[i][0]-картинка
A_all[i][1]-адрес
A_all[i][2]-доп инфа.
A_all[i][3]-название здания-памятника
*/
S_all=S_all.toString();
A_all=S_all.split('‼');
for (var i=0;i<A_all.length; i++)
{A_all[i]=A_all[i].split('|');}
//последовательный геокодинг и добавление адресов на карту в кластере
for (var i=0; i < A_all.length; i++)
{
if (A_all[i][2]==null){continue;}
else{
ymGeocod(A_all[i][1], A_all[i][0], A_all[i][2], A_all[i][3]);
}
}
}