Your IP : 172.28.240.42


Current Path : /var/www/html/clients/biblio.e-nkama.ru/includes/
Upload File :
Current File : /var/www/html/clients/biblio.e-nkama.ru/includes/map.php

<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die;

CModule::IncludeModule('iblock');

$arSelect = array('ID', 'NAME', 'PROPERTY_ADDRESS', 'PROPERTY_COORD');
$arFilter = array('IBLOCK_ID' => 1, 'ACTIVE' => 'Y');
$arOrder  = array('SORT' => 'ASC', 'NAME' => 'ASC');
$items = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

$list = array();

while ($item = $items->GetNext())
{
    $list[] = array(
        'name'    => $item['NAME'],
        'address' => $item['PROPERTY_ADDRESS_VALUE'],
        'coord'   => $item['PROPERTY_COORD_VALUE']
    );
}
?>
<div id="map-content" class="map">
    <div class="map__block">
        <div class="container">
            <div class="map__search">
                <h3 class="map__search__title">Найди свою библиотеку</h3>
                <div class="input-group">
                    <input type="text" class="form-control map__search__input" placeholder="Ввод названия или выбор из списка">
                    <div class="input-group-append">
                        <button type="button" class="btn__arr select__arr"></button>
                    </div>
                    <div class="input-group-append">
                        <button type="button" class="btn__search"></button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<script>
ymaps.ready(init);

var myMap;

function init() {
    myMap = new ymaps.Map('map-content', {
        center: [55.627255, 51.806229],
        zoom: 9
    });

    myMap.behaviors.disable('scrollZoom');
    myMap.controls.remove('searchControl');

    <?php foreach ($list as $item) : ?>
    var myPlacemark = new ymaps.Placemark([<?= $item['coord'] ?>], {
        hintContent: '<?= $item['name'] ?>',
        balloonContent: '<?= $item['address'] ?>'
    }, {
        preset: 'islands#blueIcon'
    });

    myMap.geoObjects.add(myPlacemark);
    <?php endforeach; ?>

    myMap.setBounds(myMap.geoObjects.getBounds(), {
        checkZoomRange: true,
        zoomMargin: 10
    });
}

window.addEventListener('DOMContentLoaded', function() {
    var source = [
        <?php foreach ($list as $item) : ?>
        '<?= $item['name'] ?>',
        <?php endforeach; ?>
    ];

    var coords = [
        <?php foreach ($list as $item) : ?>
        [<?= $item['coord'] ?>],
        <?php endforeach; ?>
    ];

    $('.map__search__input').autocomplete({
        source: source,
        select: function(event, ui) {
            var coord = coords[source.indexOf(ui.item.value)];
            myMap.setCenter(coord, 17, {
                checkZoomRange: true
            });
        }
    });

    $('.map__search button').on('click', function() {
        $('.map__search__input').autocomplete('search', 'Б');
    });
});
</script>