@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>
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
гет параметры, не?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы