Current Path : /var/www/html/clients/biblio.e-nkama.ru/includes/ |
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>