- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
<script>
var myMap;
var ymapsReady = function () {
myMap = new ymaps.Map('<?= $options['containerId'] ?>', {
center: [55.751574, 37.573856],
zoom: 9,
controls: []
}, {
searchControlProvider: 'yandex#search'
});
<?php
if(isset($options['centerCoordinates'])){
?>
myMap.setCenter(<?= $options['centerCoordinates'] ?>);
<?php
}elseif(isset($options['centerAddress'])){?>
ymaps.geocode('<?= $options['centerAddress'] ?>', {
results: 1
}).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
coords = firstGeoObject.geometry.getCoordinates();
myMap.setCenter(coords);
});
<?php
}
if (!empty($options['salesOffices'])) {
foreach( $options['salesOffices'] as $i => $salesOffice ) {
$address = ArrayHelper::getValue($salesOffice, 'actual_address');
?>
ymaps.geocode('<?= $address ?>', {
results: 1
}).then(function (res) {
let firstGeoObject = res.geoObjects.get(0),
coords = firstGeoObject.geometry.getCoordinates();
ymaps.geocode(coords, {
kind: 'metro',
results: 2
}).then(function (res) {
res.geoObjects.each(function (geoObject) {
$('#placemark_<?= $i ?>').find('.metro').append("<div class='metro-item'>" + geoObject.getPremise().replace(/(^|\s)метро(\s|$)/g, '').replace(/(^|\s)станция(\s|$)/g, '') + '</div>');
});
});
let customIcon = ymaps.templateLayoutFactory.createClass('<div id="placemark_icon_<?= $i ?>" class="placemark-block"><div class="placemark"></div><div class="placemark-text"><?= ArrayHelper::getValue($salesOffice, 'name') ?></div></div>');
myPlacemark[<?= $i ?>] = new ymaps.Placemark(coords,
{
balloonContent: '<?= ArrayHelper::getValue($salesOffice, 'name') ?>',
iconCaption: customIcon,
iconLayout: 'default#imageWithContent',
iconContentLayout: customIcon
}, {
hintContent: '<?= ArrayHelper::getValue($salesOffice, 'name') ?>',
iconLayout: 'default#imageWithContent',
iconImageHref: '',
iconImageOffset: [-15, -27],
iconContentLayout: customIcon
});
myMap.geoObjects.add(myPlacemark[<?= $i ?>]);
});
<?php
}
}
?>
};
setTimeout(function () {
ymaps.ready(ymapsReady);
}, <?=( isset($options['isModal']) ? 500 : 0 )?>);
</script>