Главные новости Пятигорска
Пятигорск
Май
2025
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22
23
24
25
26
27
28
29
30
31

Как вставить Яндекс Карту на сайт быстро и просто

0
D3.ru 

https://any-key.net/kak-vstavit-yandeks-kartu-na-sajt/

Совершенно неожиданно для меня, моя предыдущая заметка стала самой популярной на подсайте за год. Попробую опубликовать заметку на несколько иную тему — вдруг понравится.

Ну и как обычно — кто любит со скришнотами и с более вменяемым форматированием текста — можно посмотреть здесь.

Для остальных продолжу ниже.

Содержание:
Предисловие (можно смело пропустить)
Как вставить Яндекс Карту на сайт быстро и просто
Настройка карты (необязательно)

Предисловие
Раньше размещал карты на сайт при помощи "Конструктора карт Яндекса" и был счастлив. Когда у сайта появилась мобильная версия, то обратил внимание, что если карта, сделанная в Конструкторе, смотрится хорошо на PC, то она плохо смотрится на мобильных устройствах и наоборот (особенно, если на карте несколько меток). После этого стал создавать две карты в Конструкторе (отдельно для PC и отдельно для мобильных устройств) и сделал JavaScript, который определял тип устройства и подгружал нужную карту. Возни с Конструктором увеличилось в два раза, но с учетом того, что я делал это раз в месяц, меня устраивало.

Но тут понадобилось создать на карте не стандартную метку из набора, предлагаемого Яндексом, а метку с собственным изображением. С неприятным удивлением обнаружил, что при помощи Конструктора это не сделать и необходимо использовать API Карт. Зашел на официальную страницу с документацией API Карт и начал читать. После 5 минут чтения официальной документации грязно выругался — такое впечатление, что ее писали Чужие для Хищников. Погуглив и прочитав несколько статей из поисковой выдачи все же решил разбираться с тем, что написано в официальной документации. Оказалось, что при помощи API Карт можно сделать много интересных вещей, но у меня такой задачи изначально не было. Поэтому ниже постараюсь рассказать, как можно сделать Яндекс Карту на сайте максимально быстро и просто (гораздо быстрее, нежели с Конструктором) при помощи API Карт.

Как вставить Яндекс Карту на сайт быстро и просто
Ну а теперь переходим к делу.
Убеждаемся, что на странице, куда мы хотим вставить карту нет элемента с id="map". Копируем код ниже и вставляем на страницу своего сайта.


<div id="map" style="width: 100%; height: 400px;"></div>
<script src="https://api–maps.yandex.ru/2.1/?lang=ru_RU"></script>
<script>
const points = [
["первое поле — постоянно отображаемое название метки",
"второе поле — описание метки, которое появляется при НАВЕДЕНИИ курсора на нее",
"третье поле — описание метки, которое появляется при КЛИКЕ на нее",
"четвертое поле — координаты метки"],

["Геленджик", "Описание филиала в Геленджике", "Подробное описание филиала в Геленджике", "44.561012, 38.077115"],
["Пятигорск", "Описание филиала в Пятигорске", "Подробное описание филиала в Пятигорске", "44.039802, 43.070643"],

]

ymaps.ready(init)
function init(){
let myMap = new ymaps.Map("map", {center: [0,0], zoom: 1, controls: ["zoomControl", "fullscreenControl"]})

for (let i = 1; i < points.length; i++) {
let coords = points[i][3].split(',')
let placemark = new ymaps.Placemark(coords, {
iconCaption: points[i][0],
hintContent: points[i][1],
balloonContent: points[i][2]
}, {
preset: 'islands#darkOrangeDotIcon'
})

myMap.geoObjects.add(placemark)
}

let centerAndZoom = ymaps.util.bounds.getCenterAndZoom(myMap.geoObjects.getBounds(), myMap.container.getSize())
myMap.setCenter(centerAndZoom.center, centerAndZoom.zoom, {checkZoomRange: true})

}
</script>


Теперь в блоке "const points = [" в строки вместо "Геленджик" и "Пятигорск" вставляем названия, описания и координаты своих меток.
При необходимости строку "Пятигорск" можно убрать или, наоборот, скопировать и после нее добавить необходимое количество меток на карте.

Координаты метки можно получить, выбрав на Яндекс Картах (НЕ в Конструкторе) нужную точку, нажать на нее правой кнопкой мыши и в выпадающем меню выбрать "Что здесь?". После этого в левом столбце под описанием точки будет поле "Координаты".

Готово!

Причем данная карта будет автоматически масштабироваться под ширину экрана, т.е. не надо делать отдельные карты для десктопной и мобильной версии сайта.

Настройка карты
Но если вам надо не только "быстро и просто", а хочется еще и красиво, и функционально, то продолжим.

Если у вашего сайта нет мобильной версии, то можете пропустить данный абзац, а можете в строке
<div id="map" style="width: 100%; height: 400px;"></div>
изменить высоту блока с картой. Для этого измените значение height на наиболее подходящее вам.
Если у вашего сайта есть мобильная версия, то лучше удалить атрибут style и прописать стили в соответствующем файле.

Изменение значка метки
Список стандартных значков приведен на данной странице.
Выбираем понравившийся значок метки, копируем его ключ и в строке "preset: 'islands#darkOrangeDotIcon'" вместо "islands#darkOrangeDotIcon" вставляем ваш ключ.
Если вы выбрали значок с надписью, то тогда еще необходимо заменить строку "iconCaption: points[i][0]," на "iconContent: points[i][0],"

Различные значки меток для филиалов
Строку "preset: 'islands#darkOrangeDotIcon'" меняем на "preset: points[i][4]".
В блоке "const points = [" в строке каждого филиала после поля с координатами добавляем поле с ключом значка метки. Должно получиться примерно так:
["Геленджик", "Описание филиала в Геленджике", "Подробное описание филиала в Геленджике", "44.561012, 38.077115", "islands#blueDotIcon"],

["Пятигорск", "Описание филиала в Пятигорске", "Подробное описание филиала в Пятигорске", "44.039802, 43.070643", "islands#darkGreenCircleDotIcon"],


Метка с собственным изображением
Вместо строки "preset: 'islands#darkOrangeDotIcon'" вставляем блок:
iconLayout: 'default#image',
// Своё изображение иконки метки
iconImageHref: 'images/myIcon.gif',
// Размеры метки
iconImageSize: [30, 42],
// Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки)
iconImageOffset: [–5, –38]


Запрет изменения масштаба карты колесиком мыши
После строки
myMap.setCenter(centerAndZoom.center, centerAndZoom.zoom, {checkZoomRange: true})
добавляем строку
myMap.behaviors.disable('scrollZoom')

Отключение названия или описания метки
Для отключения постоянно отображаемого названия метки перед строкой "iconCaption: points[i][0]," необходимо поставить "//". Должно получиться
//iconCaption: points[i][0],

Для отключения описания метки, которое появляется при наведении курсора на нее, перед строкой "hintContent: points[i][1]," необходимо поставить "//".

Для отключения описания метки, которое появляется при клике на нее, перед строкой "balloonContent: points[i][2]" необходимо поставить "//".

Удаление или добавление отдельных элементов управления карты
Существует 9 стандартных элементов управления карты:
Изменение масштаба — zoomControl
Определить мое местоположение — geolocationControl
Маршруты — routeButtonControl
Найти адрес или объект — searchControl
Проложить маршрут — routeEditor
Пробки — trafficControl
Слои — typeSelector
Во весь экран — fullscreenControl
Измерение расстояний — rulerControl


Для добавления необходимых вам элементов, вставляем их в строку
let myMap = new ymaps.Map("map", {center: [0,0], zoom: 1, controls: ["zoomControl", "fullscreenControl"]})
в блок "controls". В вышеприведенном примере установлено два элемента управления — "изменение масштаба" и "во весь экран".

Также есть возможность добавлять на карту выпадающие списки, собственные кнопки и элементы управления, но об этом читайте в официальной документации.

Как добавить очень много меток на карту или загрузить метки на карту из JSON — написано здесь.

Если вам не хватило вышеописанных возможностей — добро пожаловать в официальную документацию Яндекса.

На мой взгляд, после вышеописанного введения в API Яндекс Карт, уже не так страшно читать официальную документацию Яндекса.

P.S. Кому интересно — пожалуйста, поставьте плюс посту, а то в последнее время на Дёти появилась интересная тенденция — сразу же после публикации поста набегают всякие левые мудаки (s083r и сотоварищи), минусуют пост, который им неинтересен (вместо того, чтобы просто пройти мимо), а потом люди, которым данный пост может помочь, просто не увидят его в общей ленте.

Написал Newbie на it.d3.ru / комментировать




Moscow.media
Частные объявления сегодня





Rss.plus




Россиянам назвали регионы, в которых можно переждать сезон цветения и аллергии

Выпускной бал за городом

Финалисты Всероссийской олимпиады выбрали Marins Park Hotel Нижний Новгород

Алкоголь постепенно разрушает ваш иммунитет: пять худших последствий


'Dhaga khol diya bey': Yashasvi-Arshdeep's on-field drama

Ekin-Su snogs Curtis Pritchard as she supports Love Island boyfriend backstage at Misfits boxing match

Chelsea cult hero, 46, looks unrecognisable as he finds creative way to watch team after ban

Global chip giants gather as the sector grapples with tariffs and approaches critical juncture on AI


7 человек погибли, 11 пострадали при столкновении автобуса с грузовиком в Калмыкии

«Like LIVE» в честь 90-летия московского метро

Утренняя охота...

НЕ ПОРА ЛИ ЯМАЛЬСКИМ СИЛОВИКАМ ВОЗБУДИТЬСЯ?


Asus is bringing two great features to ergonomic keyboards with its upcoming ROG Falcata

I did Liberation Day tariffs in Victoria 3, and it all went well until the famine in Colorado, the 2 lost wars with Canada, and the president beating a man to death with a stick

Clair Obscur's director has an old YouTube channel full of masterful no-hit Devil May Cry videos because of course he does

Sure, why not, the next Dead by Daylight crossover is with Assassin's Creed Shadows



На Ставрополье росгвардейцы приняли участие в межведомственных антитеррористических учениях

Обеззараживание более 55 тысяч тонн зерна и продуктов его переработки провели специалисты Северо-Кавказского филиала с начала года

Команда подшефного класса Росгвардии заняла призовые места в военно-спортивной игре «Зарница 2.0» на Ставрополье

Стая собак едва не напала на детей в Ставрополе




Сбитый сотрудник дорожной службы скончался в больнице

Команда подшефного класса Росгвардии заняла призовые места в военно-спортивной игре «Зарница 2.0» на Ставрополье

Суд арестовал жителя Москвы за попытку вступить в ИГ

Уроженец Невинномысска Денис Дорохов снялся в новом сезоне сериала на ТНТ


Уроженец Невинномысска Денис Дорохов снялся в новом сезоне сериала на ТНТ

Крыши трёх 75-летних домов отремонтировали в Лермонтове

УАЗ врезался в КамАЗ и сбил его водителя в Минераловодском округе

Сбитый сотрудник дорожной службы скончался в больнице


Елена Рыбакина получила плохие новости от WTA

Джокович — о работе с Мюрреем: Мы не достигли вместе того, на что рассчитывали

Рейтинг WTA. Швентек покинула топ-2 и стала №5, Мирра Андреева вернулась на 6-ю строчку, Азаренко выпала из топ-70

Рыбакина оценила разгромный старт на турнире во Франции


Где сейчас и как выглядит знаменитый футболист СССР, бравший золото Олимпиады? 36 лет назад он уехал в Европу

Суд арестовал пластического хирурга и блогера Алтуняна за порнографию

Пластического хирурга и блогера, работающего ранее на Кубани арестовали в Москве

В Ростове осудили двух участников ИГ*, планировавших теракт в Пятигорске


Музыкальные новости

Рэпер Снуп Догг создал Telegram-канал

SHOT: Григорович умер из-за осложнений после двусторонней пневмонии

Кто такой Юрий Григорович и почему его называют символом эпохи

Погребняк обвинила Сивова в хайпе на Нюше: «Ты из себя ничего не представляешь»



УАЗ врезался в КамАЗ и сбил его водителя в Минераловодском округе

В распространении порнографии заподозрили хирурга, который работал в Пятигорске

Экс-прокурору из Северной Осетии дали 4,5 года колонии за изнасилование коллеги

Как вставить Яндекс Карту на сайт быстро и просто


Как начать петь. Как начать петь песни. Как начать петь с нуля.

Закупки Газпрома. 20 мая 2025 г. Капитальный ремонт и др. услуги

«Россети» вложат более 3,3 млрд рублей в 2025 году в развитие электросетей Удмуртии

Работники АО «Транснефть – Дружба» приняли участие в международном автомотопробеге


В Ставрополье в ДТП с участием скорой пострадали четыре человека

Сводка ДТП в Калмыкии за прошедшую неделю

Авария в Ставрополье: столкновение скорой помощи с Lada Kalina, четверо пострадавших

Четыре человека пострадали в ДТП со скорой помощью на Ставрополье


Axios узнал об отказе Трампа вводить новые санкции против России по просьбе ЕС

Новые судьи назначены в трёх округах Ставрополья указом президента РФ

Как прошел визит в Россию Си Цзиньпина, и какие он здесь заключил соглашения

«В районе Кремля и Красной площади»: Путин рассказал Трампу о предотвращении терактов в Москве перед 9 Мая





В Невинномысске проходят учения медиков по массовому приёму жертв ДТП

Водитель грузовика, сбитый машиной в Минераловодском округе, умер в больнице

Ставрополье назвали одним из 12 «регионов-убежищ» для аллергиков в России

Фельдшер скорой из Ессентуков стал известным тиктокером, снимая видео о работе


Разбор полетов для Зеленского: почему Киев впал в панику после переговоров Путина и Трампа

В Верховной Раде разоблачены коварные действия Зеленского в конфликте с Россией


В Ставрополе определили сильнейшие краевые клубы по рукопашному бою

Команда подшефного класса Росгвардии заняла призовые места в военно-спортивной игре «Зарница 2.0» на Ставрополье

СУХУМСКИЕ КИКБОКСЕРЫ ЗАВОЕВАЛИ ЗОЛОТО И СЕРЕБРО

Ставропольские спортсмены взяли четыре медали на всероссийских соревнованиях по туризму


Между Красноярском и Минском может появиться прямое авиасообщение

В Красноярске планируют открыть прямые авиарейсы до Минска

Михаил Котюков и Александр Лукашенко обсудили вопросы сотрудничества



Собянин и Мурашко открыли уникальный модернизированный медтехноцентр в Москве

Собянин объявил программу фестиваля «Театральный бульвар»

Собянин: Столичные археологи обнаружили более 120 тыс. индивидуальных находок

Глава Ставропольского края выступит с ежегодным Посланием


Биологи рассказали о жизни барсуков в черте города

Количество охотничьих животных выросло на Ставрополье

Около 3 тыс. ставропольцев посетили «Ночь музеев» — видеосюжет

Медиаклуб движения «Экосистема» сформирует новую ...


Краевые и федеральные депутаты обсудили Стратегию государственной национальной политики в Пятигорске

Улицу в Пятигорске перекроют на 10 дней из-за аварии на теплотрассе

Где сейчас и как выглядит знаменитый футболист СССР, бравший золото Олимпиады? 36 лет назад он уехал в Европу

В Нефтекумске ищут убийцу пенсионера из Краснодара


Пожар на Московском: в Архангельске при возгорании в квартире погиб пожилой мужчина

«Архангельск Блюз 2025»: юбилейный фестиваль откроется бесплатным концертом у драмтеатра

Архангельские врачи спасли пациентку с поликистозом почек: первая в 2025 году трансплантация прошла успешно

Нарьян-Марскую епархию возглавил епископ Софроний


Арт-знакомство «Художник – тот же поэт»

Час гордости и славы «Стояли, как солдаты, Города-Герои»

Выставка-история «Истоки русской письменности»

Час гордости и славы «Стояли, как солдаты, Города-Герои»


292 ставропольца пострадали от клещей за неделю

Пластического хирурга и блогера, работающего ранее на Кубани арестовали в Москве

Сбитый сотрудник дорожной службы скончался в больнице

Дмитрий Ворошилов избран главой Пятигорска












Спорт в Ставропольском крае

Новости спорта


Новости тенниса
Янник Синнер

Синнер пробился в финал теннисного «Мастерса» в Риме






УАЗ врезался в КамАЗ и сбил его водителя в Минераловодском округе

Сбитый сотрудник дорожной службы скончался в больнице

Главой Пятигорска избран Дмитрий Ворошилов

Загрузка гостиниц в Сочи летом ожидается на уровне 90%