Code Monkey home page Code Monkey logo

olacenters-yandex-maps's Introduction

OlaCenters-Yandex-Maps

Проект OlaCenters-Yandex-Maps использует API Яндекс.Карт для отображения множества меток на карте. Карта центрируется на заданной координате и масштабируется до определенного уровня. Адреса, которые необходимо отобразить на карте, хранятся в массиве объектов. Для каждого адреса происходит геокодирование, то есть преобразование адреса в координаты на карте. Затем создается метка с полученными координатами, кастомной иконкой и балуном с информацией о местоположении. Пользователь может кликнуть на метку, чтобы увидеть более подробную информацию. В проекте используется библиотека Yandex Maps API для работы с картами.

Описание работы

  • Создается экземпляр карты с заданными параметрами центра и масштаба.
  • Создаются шаблоны Icon и Balloon с помощью метода ymaps.templateLayoutFactory.createClass.
  • Для каждого объекта в массиве адресов выполняется следующее:
  • Создается экземпляр геокодера с помощью метода ymaps.geocode.
  • Обрабатываются результаты геокодирования с помощью метода then.
  • Создается экземпляр метки ymaps.Placemark с заданными параметрами:
    • координаты, полученные из геокодера
    • параметры для шаблонов Icon и Balloon,
    • параметры отображения метки на карте.
  • Метка добавляется на карту с помощью метода myMap.geoObjects.add.

Кнопка с информацией о местоположении и функцией перемещения карты

Описание

Этот код создает кнопку на странице с информацией о местоположении и отзывами. Кнопка имеет атрибуты data-lat и data-lng, которые содержат координаты местоположения, а также классы для стилизации. При клике на кнопку карта перемещается к указанным координатам с анимацией.

Использование

Добавьте кнопку на вашу страницу с атрибутами data-lat и data-lng, содержащими координаты местоположения, а также с классами для стилизации. Например:

<button
  id="address-btn"
  data-lat="59.930611"
  data-lng="30.371168"
  class="addresses__button--mobile"
>
  <div class="addresses__metro--mobile">
    <svg ...></svg>
    <h4 class="addresses__title--mobile addresses__title--red">
      Площадь Восстания
    </h4>
  </div>
  <p class="addresses__address--mobile">
    2-я Советская улица, 25А
  </p>
  <div class="addresses__stats">
    <svg ...></svg>
    <span class="addresses__review">4.4 (344 отзыва)</span>
  </div>
</button>

Добавьте JavaScript код, который будет отслеживать клик на кнопке и перемещать карту к указанным координатам. Например:

const address_btn = document.querySelectorAll('[id="address-btn"]');

Array.prototype.forEach.call(address_btn, function (e) {
  e.addEventListener("click", function () {
    const lat = parseFloat(this.getAttribute("data-lat"));
    const lng = parseFloat(this.getAttribute("data-lng"));
    myMap.setZoom(16);
    myMap.panTo([lat, lng], {
    flying: true,
    duration: 500,
    });
  });
});

При необходимости, настройте параметры анимации перемещения карты в соответствии с документацией Yandex Maps API.

Используемые библиотеки

  • Yandex Maps JavaScript API
  • Swiper (для реализации слайдера в Balloon)

olacenters-yandex-maps's People

Contributors

oiwy avatar

Watchers

Aleksey Popov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.