Яндекс API - Метки на карте

Тема в разделе "JavaScript", создана пользователем FUTURiTY, 21 ноя 2014.

Модераторы: ZiX
  1. FUTURiTY

    FUTURiTY Прохожие

    Добрый день!

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

    <script type="text/javascript">
    ymaps.ready(init);
    function init () {
    var myMap_1 = new ymaps.Map('map_1', {
    center: [xx.yy, xx.yy],
    zoom: 16
    }),
    myMap_2 = new ymaps.Map('map_2', {
    center: [xx.yy, xx.yy],
    zoom: 16
    });
    myMap_3 = new ymaps.Map('map_3', {
    center: [xx.yy, xx.yy],
    zoom: 16
    });
    myMap_4 = new ymaps.Map('map_4', {
    center: [xx.yy, xx.yy],
    zoom: 16
    });
    }
    </script>

    подскажите как мне поставить метки на конкретные объекты карты?

    Перейти по ссылке
    кокой метод нужно применить из этой документации?
     
  2. BaBL

    BaBL Постоялец

    Регистр.:
    13 ноя 2012
    Сообщения:
    144
    Симпатии:
    87
    Создавай placemark как обычно, а потом:

    Код:
    myMap_2.addOverlay(placemark);
    закидывай его в нужный тебе MAP объект.

    Только учти, что объект myMap_2 у тебя существует только в рамках функции init() и из другой ты его не вызовешь. Для этого var myMap_2 надо вынести за пределы функции и инициализировать переменную, к примеру, NULL'ом.
     
    FUTURiTY нравится это.
  3. FUTURiTY

    FUTURiTY Прохожие

    Спасибо.
    Не совсем понял, можно конкретно в коде это указать?
    Спасибо.
     
  4. BaBL

    BaBL Постоялец

    Регистр.:
    13 ноя 2012
    Сообщения:
    144
    Симпатии:
    87
    Код:
    ymaps.ready(init);
    function init () {
      var myMap_1 = new ymaps.Map('map_1', {
       center: [xx.yy, xx.yy],
       zoom: 16
      }),
      myMap_2 = new ymaps.Map('map_2', {
        center: [xx.yy, xx.yy],
        zoom: 16
      });
    }
    
    function second() {
      // myMap_1 и myMap_2 работать не будут.
    }
    
    Код:
    ymaps.ready(init);
    var myMap_1 = null;
    var myMap_2 = null;
    
    function init () {
     myMap_1 = new ymaps.Map('map_1', {
       center: [xx.yy, xx.yy],
       zoom: 16
      });
      myMap_2 = new ymaps.Map('map_2', {
        center: [xx.yy, xx.yy],
        zoom: 16
      });
    }
    
    function second() {
      //myMap_1 и myMap_2 можно использовать.
      var placemark = new YMaps.Placemark(new YMaps.GeoPoint(37.609218,55.753559));
      placemark.name = "Москва";
      placemark.description = "Столица Российской Федерации";
    
      myMap_2.addOverlay(placemark);
    }
    
     
    FUTURiTY нравится это.
  5. FUTURiTY

    FUTURiTY Прохожие

    Не работает. :conf:
    Какие ещё варианты?
     
  6. TrueBit

    TrueBit Создатель

    Регистр.:
    23 ноя 2014
    Сообщения:
    47
    Симпатии:
    19
    Метка может быть создана двумя способами: с помощью класса GeoObject с указанным типом геометрии "точка" либо с помощью вспомогательного класса Placemark.

    При создании метки нужно указать координаты соответствущей точки. Также метке можно задать её свойства (например, текст значка) и опции (например, изображение значка).

    Метки можно объединять в коллекции, а также кластеры

     
    FUTURiTY нравится это.
  7. BaBL

    BaBL Постоялец

    Регистр.:
    13 ноя 2012
    Сообщения:
    144
    Симпатии:
    87
    Все работает, у вас код баллуна был просто первой версии API, я не обратил внимания и скопировал:

    Перейти по ссылке

    с отдельный Плейсмарком
    Перейти по ссылке
     
    FUTURiTY нравится это.
  8. FUTURiTY

    FUTURiTY Прохожие

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

    Вообще это неразбериха с Яндекс картами напрягает, одну и туже карту с метками можно сделать разными способами и по сути это не очень хорошо.

    TrueBit, это из инструкции по яндекс взято или это ваш личный опыт?
    не совсем понятно, везде по разному пишут и где правильно не понятно.