Hideicononballoonopen false не работает

Как изменить балун на карте яндекса?

Добрый день, есть такая конструкция

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

  • Вопрос задан более трёх лет назад
  • 7947 просмотров

в общем мне никто так и не помог и не объяснил , потратил день и разобрался сам , если кому то будет интересно то именно для такой конструкции необходимо использовать метод setOptions объекта geoQueryResult api.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference.

а вот что нужно добавить именно в эту конструкцию чтобы все заработало

.setOptions( <
iconLayout: ‘default#image’,
iconImageHref: ‘main/red_marker.png’,
iconImageSize: [20, 35],
iconImageOffset: [-3, -42],
balloonContentHeader: ‘Тестовый заголовок’,
balloonContentBody: ‘Тестовый контент ‘
>)

я так понимаю что мне достаточно этого куска кода ?

ymaps.ready(function () <
ymaps.option.presetStorage.add(‘custom#default’, <
iconLayout: ‘default#image’,
iconImageHref: ‘marker.png’,
iconImageSize: [30, 40],
iconImageOffset: [-15, -40],
iconImageClipRect: [
[0, 30],
[30, 70]
],
hideIconOnBalloonOpen: false
>);
ymaps.option.presetStorage.add(‘custom#active’, <
iconLayout: ‘default#image’,
iconImageHref: ‘marker.png’,
iconImageSize: [30, 40],
iconImageOffset: [-15, -40],
iconImageClipRect: [
[0, 70],
[30, 110]
],
hideIconOnBalloonOpen: false
>);

@QTnub вы для начала определитесь, какую версию подключаете. Мой код предназначен для 2.1. А вы приводите ссылки на 2.0. Понимаете разницу?

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

massive_adres.each(function(i) <
var objects = ymaps.geoQuery(ymaps.geocode($(this).text()))

куда это тут вставить ? как в примере сделать у меня получилось , а как тут не разберусь никак , тут я так понимаю это точка на карте .addToMap(myMap); вот и как ей прописать картинку для балуна, я пробовал добавлять что то типа

Источник

Hideicononballoonopen false не работает

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: \»Point\»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Читайте также:  Как настроить датчик движения светильника

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: «Point»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: \»Point\»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: «Point»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

«,»contentType»:»text/html»>,»authorId»:»193731676″,»slug»:»34402″,»canEdit»:false,»canComment»:false,»isBanned»:false,»canPublish»:false,»viewType»:»old»,»isDraft»:false,»isOnModeration»:false,»isSubscriber»:false,»commentsCount»:3,»modificationDate»:»Sun Dec 16 2012 11:04:00 GMT+0400 (Moscow Standard Time)»,»showPreview»:true,»approvedPreview»:<"source":"

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: «Point»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Читайте также:  Zet gaming renegade не работает микрофон

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

self.geoObject = new ymaps.GeoObject( <
geometry: <
type: «Point»,
coordinates: [data.coordinates.split(‘,’)[0], data.coordinates.split(‘,’)[1]]
>,
properties: <
id: self.office_id,
title: self.office_title,
address: self.office_data.address
>
>, <
balloonContentLayout: ymaps.templateLayoutFactory.createClass(
self.balloonTemplate
),
offset: [0, 0], //Не работает почему-то
balloonContentHeaderLayou t:ymaps.templateLayoutFac tory.createClass(
»
),
closeButton: false, //Не работает
iconLayout: ymaps.templateLayoutFactory.createClass(
‘ ‘
),
iconOffset: [0, 0], //Не работает почему-то
hideIconOnBalloonOpen: false,
hintHideTimeout: 0
>);

Предыстория проблемы: со своими css-стилями сверстали макет балуна, создали на его основе layout и заменили им у геообъекта balloonContentLayout.

Отлично, балун отображается как надо, НО в левом верхнем уголке под ним стандартный балун.

Пробовал заменять balloonContentHeaderLayout на пустой лэйаут, на null, ставить closeButton:false — никакой реакции

Вопрос — как от этого недоразумения избавиться?

Источник

Не работает setCenter Яндекс карты

Дано: на странице есть карта с несколькими маркерами. Есть список ссылок с координатами этих маркеров, по клику отрабатывает onclick=changeCenter(x,y)

переменные x и y передаются нормально, функция их съедает. Но карта тупо сбрасывается и ничего не происходит. Функцию подключил сразу после init карты. Кто подскажет в чем беда? Так мало примеров setCenter в интернете. Допускаю что просто я не очень сообразительный)

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

Ответы (1 шт):

Метод setCenter — устанавливает центр и коэффициент масштабирования карты. Центр задается в географических координатах. Возвращает ссылку на себя.

Ваша функция выглядит следующим образом:

В документации яндекса к методу setCenter написано следующее:

Нас интересует первый параметр:

Параметр: center (обязательное для заполнения поле)
Значение по умолчанию: нет
Тип: Number[]
Описание: Геокоординаты центра карты

Откуда следует, что в метод нужно передавать массив из двух чисел (чтобы это был массив — нужны квадратные скобки [x, y] ). Думаю в этом и заключается причина сброса карты (некорректная работа, которая не ожидалась).

Читайте также:  Как опустить кресло для компьютера если рычаг не работает

Касаемо Placemark и Map , там где вы передаете строки, что-то мне подсказывает, что туда нужно передавать не строки в виде [«x», «y»] , а координаты в формате чисел (кстати тут указали верно — массив, но вот только строк).

Несколько примеров из документации, по использованию методов.

Инициализация карты из известных центра и уровня масштабирования:

Из примеров видно, что значения координаты метки передаются в виде массива двух чисел: [40, 50] , [48, 40] и [55.74954, 37.621587] . Поэтому меняйте ваши [«x», «y»] — строки на числа, а в метод setCenter — передавайте массив.

Источник

Обработчик кнопки в Placemark.balloon #226

Comments

KainWhite commented Apr 25, 2020 •

Вопрос

Есть ли способ создать в balloon Placemark’а кнопку с обработчиком, в котором используется this?

Создание обработчика:

Компонент SomeMap

Класс PlacemarkBalloon

Именно тут я не знаю, что написать в onclick кнопки.

The text was updated successfully, but these errors were encountered:

mmarkelov commented Apr 25, 2020

Достаточно нетривиальная задача, советую посмотреть:
#150
#130
#27

Также есть репа, в которой пытался решить данную проблему

KainWhite commented Apr 26, 2020

Попробовал использовать код из #27 и отюда, но такой UserPlacemark не получает в контекст ymaps:

Инициализация карты

UserPlacemark

По идее ymaps должен быть получен в UserPlacemark, поскольку находится внутри YMaps.

Что я делаю не так?

mmarkelov commented Apr 26, 2020

@KainWhite такой вариант работал с предыдущей версией библиотеки, Сейчас Вам стоит либо пробрасывать ymaps через пропсы, либо использовать withYMaps

KainWhite commented Apr 26, 2020 •

@mmarkelov судя по всему, использовать пропс я не мог, поскольку UserPlacemark это самописный компонент, а onload работает только с Map; поэтому получается, что оставался только withYMaps, в результате получилось что-то такое:

Однако в этом случае слетает позиционирование балуна: он отображается в правом верхнем углу карты + не закрывается после нажатия на крестик + после любого действия с картой при открытом балуне, возникает ошибка Cannot read property ‘setPosition’ of null , после которой сразу же ticking while inactive . и карта больше не отзывается.

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

Вопрос

Возможно я что-то делаю не так и есть более простой способ добиться правильного поведения (то есть балун строго над меткой, крестик его закрывает)? Или простого способа нет, но есть какие-то дополнительные настройки Placemark, которые я не заметил, и которые позволят решить проблему?

Источник

Оцените статью