Ntcn
Studio Headphones
SKU: 700.954.29
100
р.
When we first checked out our new headphones, we noticed the box said 'improved bass by cool. We had to wonder, is this marketing jargon, or the real thing? But it only took a moment to realize that bass was not kidding.
Как приготовлен этот бургер
Рассказывает шеф-повар нашего ресторана
ymaps.ready(init); function init() { var myMap = new ymaps.Map('map', { center: [30.264981955459618, 59.9567962610097], zoom: 9, controls: ['geolocationControl', 'searchControl'] }), deliveryPoint = new ymaps.GeoObject({ geometry: {type: 'Point'}, properties: {iconCaption: 'Адрес'} }, { preset: 'islands#blackDotIconWithCaption', draggable: true, iconCaptionMaxWidth: '215' }), searchControl = myMap.controls.get('searchControl'); searchControl.options.set({noPlacemark: true, placeholderContent: 'Введите адрес доставки'}); myMap.geoObjects.add(deliveryPoint); function onZonesLoad(json) { // Добавляем зоны на карту. var deliveryZones = ymaps.geoQuery(json).addToMap(myMap); // Задаём цвет и контент балунов полигонов. deliveryZones.each(function (obj) { obj.options.set({ fillColor: obj.properties.get('fill'), fillOpacity: obj.properties.get('fill-opacity'), strokeColor: obj.properties.get('stroke'), strokeWidth: obj.properties.get('stroke-width'), strokeOpacity: obj.properties.get('stroke-opacity') }); obj.properties.set('balloonContent', obj.properties.get('description')); }); // Проверим попадание результата поиска в одну из зон доставки. searchControl.events.add('resultshow', function (e) { highlightResult(searchControl.getResultsArray()[e.get('index')]); }); // Проверим попадание метки геолокации в одну из зон доставки. myMap.controls.get('geolocationControl').events.add('locationchange', function (e) { highlightResult(e.get('geoObjects').get(0)); }); // При перемещении метки сбрасываем подпись, содержимое балуна и перекрашиваем метку. deliveryPoint.events.add('dragstart', function () { deliveryPoint.properties.set({iconCaption: '', balloonContent: ''}); deliveryPoint.options.set('iconColor', 'black'); }); // По окончании перемещения метки вызываем функцию выделения зоны доставки. deliveryPoint.events.add('dragend', function () { highlightResult(deliveryPoint); }); function highlightResult(obj) { // Сохраняем координаты переданного объекта. var coords = obj.geometry.getCoordinates(), // Находим полигон, в который входят переданные координаты. polygon = deliveryZones.searchContaining(coords).get(0); if (polygon) { // Уменьшаем прозрачность всех полигонов, кроме того, в который входят переданные координаты. deliveryZones.setOptions('fillOpacity', 0.4); polygon.options.set('fillOpacity', 0.8); // Перемещаем метку с подписью в переданные координаты и перекрашиваем её в цвет полигона. deliveryPoint.geometry.setCoordinates(coords); deliveryPoint.options.set('iconColor', polygon.properties.get('fill')); // Задаем подпись для метки. if (typeof(obj.getThoroughfare) === 'function') { setData(obj); } else { // Если вы не хотите, чтобы при каждом перемещении метки отправлялся запрос к геокодеру, // закомментируйте код ниже. ymaps.geocode(coords, {results: 1}).then(function (res) { var obj = res.geoObjects.get(0); setData(obj); }); } } else { // Если переданные координаты не попадают в полигон, то задаём стандартную прозрачность полигонов. deliveryZones.setOptions('fillOpacity', 0.4); // Перемещаем метку по переданным координатам. deliveryPoint.geometry.setCoordinates(coords); // Задаём контент балуна и метки. deliveryPoint.properties.set({ iconCaption: 'Доставка транспортной компанией', balloonContent: 'Cвяжитесь с оператором', balloonContentHeader: '' }); // Перекрашиваем метку в чёрный цвет. deliveryPoint.options.set('iconColor', 'black'); } function setData(obj){ var address = [obj.getThoroughfare(), obj.getPremiseNumber(), obj.getPremise()].join(' '); if (address.trim() === '') { address = obj.getAddressLine(); } var price = polygon.properties.get('description'); price = price.match(/(.+)<\/strong>/)[1]; deliveryPoint.properties.set({ iconCaption: address, balloonContent: address, balloonContentHeader: price }); } } } $.ajax({ url: 'data.geojson', dataType: 'json', success: onZonesLoad }); }
Zero block
Click „Block Editor” to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Made on
Tilda