Задать вопрос
@Gorotto

Как отобразить нужное местоположение при обновление страницы в яндекс картах?

при клике на название метки переходим на страницу и нужно показывать соответствующую метку. Как сделать чтобы при переходе на страницу показывались нужные координаты? Попробовал через localStorage, но координаты не подставляются пример того что есть
Возможно нужно использовать stringify, но как применить к текущему json не знаю
ymaps.ready(init);

function init() {
  var myMap = new ymaps.Map(
      "map",
      {
        center: [55.76, 37.64],
        zoom: 10,
      },
      {
        searchControlProvider: "yandex#search",
      }
    ),
    objectManager = new ymaps.ObjectManager({
      // Чтобы метки начали кластеризоваться, выставляем опцию.
      clusterize: true,
      // ObjectManager принимает те же опции, что и кластеризатор.
      gridSize: 32,
      clusterDisableClickZoom: true,
    });

  // Чтобы задать опции одиночным объектам и кластерам,
  // обратимся к дочерним коллекциям ObjectManager.
  objectManager.objects.options.set({
    iconLayout: "default#image",
    // Своё изображение иконки метки.
    iconImageHref:
      "map_marker_new.png",
    // Размеры метки.
    iconImageSize: [30, 42],
    iconImageOffset: [-3, -42],
  });

  objectManager.clusters.options.set({
    clusterIcons: [
      {
          href: 'claster.svg',
          size: [46, 46],
          offset: [-23, -23]
      }],
    hasBalloon: false,
    groupByCoordinates: false,
    clusterDisableClickZoom: false,
    clusterHideIconOnBalloonOpen: false,
    clusterOpenBalloonOnClick: false,
    geoObjectHideIconOnBalloonOpen: false
});
  myMap.geoObjects.add(objectManager);

  $.ajax({
    url: "data-t.json",
  }).done(function (data) {
      
    objectManager.add(data);
  });

  [].forEach.call(document.querySelectorAll("[data-objectid]"), function (el) {
    el.addEventListener("click", function () {
      let objectid = el.getAttribute("data-objectid");
      window.location.assign(el.getAttribute('data-url'));
      viewObject(objectid);
      console.log(objectid);
    });
  });

  function viewObject(objectid) {

    let karl = objectManager.objects.getById(objectid).geometry.coordinates;
    localStorage.setItem('myKey', karl);
    let saveCoord = localStorage.getItem('myKey');
    // Центруем по метке
    console.log('Координаты объекта: ' + saveCoord);
    myMap.setCenter([saveCoord],15, {
        checkZoomRange: true,
      }
    );
  }
}

<div>
        <div class="point" data-url="././object_manager.html" data-objectid="1">метка 1</div>
        <div class="point" data-url="././object_manager.html" data-objectid="2">метка 2</div>
        <div class="point" data-url="././object_manager.html" data-objectid="3">м.етка 3</div>
        <div class="point" data-url="././object_manager.html" data-objectid="4">м.етка 4</div>
        <div class="point" data-url="././object_manager.html" data-objectid="5">м.етка 5</div>
        <div class="point" data-url="././object_manager.html" data-objectid="6">м.етка 6</div>
        <div class="point" data-url="././object_manager.html" data-objectid="7">м.етка 7</div>
        <div class="point" data-url="././object_manager.html" data-objectid="8">м.етка 8</div>
    </div>
  • Вопрос задан
  • 103 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
гет параметры, не?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы