Клуб API Карт

Найдено на тему «html»:
Как создать HTML-метку с поведением обычной метки (с подсказкой и балуном)?
f-ph
2 апреля 2016, 10:15

Здравствуйте. Мне нужно создать на карте метку (ymaps.Placemark), которая задаётся HTML кодом (по ряду причин задать картинкой нельзя). Как следать это так, чтобы при этом работало стандартное поведение метки (курсор при наведении, подсказка и балун)?

Я пытался сделать так:

var customIcon = ymaps.templateLayoutFactory.createClass( '<div class="theme-border theme-background" style="width: 0.6em; height: 0.6em; border-style: solid; border-width: 0.4em; border-radius: 100%; margin: -0.7em;"></div>' );
var placemark = new ymaps.Placemark(
    [ 43, 56 ],
    { hintContent: 'Метка', balloonContent: 'Описание' },
    { iconLayout: customIcon }
);
myMap.geoObjects.add( placemark );

Но так исчезает вся интерактивность метки.

Ещё пытался сделать так:

var customIcon = ymaps.templateLayoutFactory.createClass( '<div class="theme-border theme-background" style="width: 0.6em; height: 0.6em; border-style: solid; border-width: 0.4em; border-radius: 100%; margin: -0.7em;"></div>' );
var placemark = new ymaps.Placemark(
    [ 43, 56 ],
    { hintContent: 'Метка', balloonContent: 'Описание' },
    {
        iconLayout: 'default#imageWithContent',
        iconImageHref: '',
        iconImageSize: [ 0, 0 ],
        iconImageOffset: [ 0, 0 ],
        iconContentLayout: customIcon
    }
);
myMap.geoObjects.add( placemark );

В таком случае поведение сохраняется, но активной областью метки становится квадрат 1х1 пиксель в центре, что не хорошо. А использование 'default#imageWithContent' выглядит как костыль.

3 комментария
макет метки,html,balloon
Кластеризация через ObjectManager
Удалённый пользователь
30 ноября 2014, 19:03

Здравствуйте! Подскажите, как в каждую метку вставить ссылки на страницу материала?

json:

{"type": "FeatureCollection", "features": [
        {"type": "Feature", "id": 0, "geometry": {"type": "Point", "coordinates": [55.831903, 37.411961]}, "properties": {"balloonContent": "Содержимое балуна", "clusterCaption": "Еще одна метка", "hintContent": "Текст подсказки"}},
        {"type": "Feature", "id": 1, "geometry": {"type": "Point", "coordinates": [55.763338, 37.565466]}, "properties": {"balloonContent": "Содержимое балуна", "clusterCaption": "Еще одна метка", "hintContent": "Текст подсказки"}}
    ]}

4 комментария
API 2.1,Javascript,html,кластеризатор,балун
Без id атрибута элемента разместить карту на странице
alesha.krivorotoff
24 ноября 2014, 08:34

Можно ли когда я вставляю карту в сайт

вместо обращения к id узла мне использовать сам узел. То-есть, в этой строке  

   var myMap = new ymaps.Map("map", {

мы указываем id элемента равный "map", а можно ли указать сам узел html-элемента и если это возможно то как мне указать? Причина: не работаю со свойством id, работаю через узлы DOM.

2 комментария
API 2.1,html
Не работает API 2.1 на XHTML странице
Алексей Ваганов
12 ноября 2014, 15:24

При использовании XHTML парсера не работает API версии 2.1. Тестовая страница:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Test</title>
    <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<style>
        html, body, #map {
            width: 100%; height: 100%; padding: 0; margin: 0;
        }
</style>
<script type="text/javascript">
//<![CDATA[
ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map("map", {
            center: [60.00, 60.00],
            zoom: 10
        });
}
//]]>
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>

Сохраняем под именем test.html - работает.

Сохраняем под именем test.xhtml - не работает.

4 комментария
API 2.1,html
Не работает select, option в браузерах Chrome, Safari для событий Яндекс.Карт
Maksim
20 октября 2014, 21:53

Собственно была обнаружена проблема, что на странице при использовании браузеров Chrome, Safari не обрабатываются события option на которые назначены события карт следующие:

////////////////////////////////////////////////////////////////////////////////////////
    
        document.getElementById('buttonOrel').onclick = function () {
        myMap.setCenter([52.969617, 36.072952], 12, {
           checkZoomRange: true,
           duration: 2000
        });
    };    
        document.getElementById('buttonMzensk').onclick = function () {
        myMap.setCenter([53.278881,36.576119], 14, {
           checkZoomRange: true,
           duration: 2000
        });
    };
        document.getElementById('buttonSpasskoeLutovinovo').onclick = function () {
        myMap.setCenter([53.370993,36.631085], 15, {
           checkZoomRange: true,
           duration: 2000
        });
    };

Сами события отправляются для карты из селектора:

 

                <select class="select">
                     <option id="buttonOrel">Орел</option>
                     <option id="buttonMzensk">Мценск</option>
                     <option id="buttonSpasskoeLutovinovo">Спасское-Лутовиново</option>
                </select>

 

но работает это все только в браузерах IE 10, Mozilla, Opera. В Safari на iOS и Google Chrome на ПК не работают. Как решить проблему?

 

Страница: http://airorel.sgt.su/

5 комментариев
Javascript,html,API 2.1
как можно нарисовать панельку с текстом поверх карты
alexandru.capustean
28 мая 2014, 16:00

Можно ли нарисовать панельку поверх карты без никаких гео координат, внутри которой будут 2 ссылки и при нажатие на одну из них нарисовать ещё одну панельку, как в рисунке 

заранее спасибо !

4 комментария
меню,API 2.1,html,CSS
Как добавить к метке ссылку
kdarolru
15 мая 2014, 17:03

Здравствуйте! Я новичёк в JavaScript. Подскажите пожайлуйста как добавить к метке ссылку?
Что бы при нажатии на метку происходило открытие html cтраницы.

 

ymaps.ready(init);

function init () {

    var myMap = new ymaps.Map("map", {

            center: [55.90415, 36.856933],

            zoom: 9

        }),

    // Создаем геообъект с типом геометрии "Точка".

        myGeoObject = new ymaps.GeoObject({

            // Описание геометрии.

            geometry: {

                type: "Point",

                coordinates: [55.865684, 37.117904]

            },

            // Свойства.

            properties: {

                // Контент метки.

                iconContent: 'Представительство1',

                hintContent: 'Первое представительство'

            }

        }, {

            // Опции.

            // Иконка метки будет растягиваться под размер ее содержимого.

            preset: 'islands#blackStretchyIcon',

            iconColor: 'red'         

        });

    myMap.geoObjects

        .add(myGeoObject)

        .add(new ymaps.GeoObject({

            // Описание геометрии.

            geometry: {

                type: "Point",

                coordinates: [55.730107, 36.851912]

            },

            // Свойства.

            properties: {

                // Контент метки.

                iconContent: 'Представительство1',

                hintContent: 'Второе представительство'

            }

        }, {

            // Опции.

            // Иконка метки будет растягиваться под размер ее содержимого.

            preset: 'islands#blackStretchyIcon',

            iconColor: 'orange',

        }))

        } 

 

4 комментария
метка,API 2.1,html
Меню для объектов на карте!
marj-erokhova
14 ноября 2013, 12:30

Добрый день!

 

Передо мной поставлена задача сделать, инвест карту для своей области.

За пример взято: http://altinvest22.ru/map.html

 

На текущий момент, пока своя БД не заполнена данными, использую БД с информацией, которую взяла в Инете. Хочу посмотреть "как да что делается" в тестовом режиме.

Возник вопрос: если для меню всех объектов попробовать использовать макет выпаддающего списка, как в песочнице, то можно ли его двинуть за пределы карты.

Или как сдеать этот пример http://api.yandex.ru/maps/jsbox/object_list красивым выпадающим списком.

 

А в целом просто посоветуйте, пожалуйста в какую стороны идти, что читать!

В js  я "-", но есть поручение -  надо делать.

 

Спасибо!.

4 комментария
html,метка,API 2.0,Javascript,коллекции,CSS
StretchyIcon растягиваются до бесконечности вниз карты в эксплорер, а в хром нормально
Удалённый пользователь
14 ноября 2013, 12:05

Причем появилось после перехода на апи 2.0.

24 комментария
API 2.0,html,1С
получить html метки
slonzver
6 октября 2013, 10:05

Привет всем! Помогите решить задачу!

 

на карте много меток в коллекции, при нажатии на метку баллун не открывается, а html который должен быть в балуне надо вывести в другом месте на сайте, как можно решить?

4 комментария
API 2.0,метка,html,коллекции,балун
Не получается добавить html в метку
Интерма Компания
3 октября 2013, 14:10
 // Создаем геообъект с типом геометрии "Точка".
        myGeoObject = new ymaps.GeoObject({
            // Описание геометрии.
            geometry: {
                type: "Point",
                coordinates: [37.59851,55.812772]
            },
            // Свойства.
            properties: {
                // Контент метки.
                iconContent: 'ООО "Базис-Групп"',
                balloonContent: '
                    <strong>Сайт</strong>:<a href="http://dom-climata.ru/" target="_blank">dom-climata.ru</a><br />
                    <strong>Адрес</strong>: г. Москва, ул. Руставели, д.14, стр.9<br />
                    <strong>Телефон</strong>: + 7 (495) 276-27-70, 8(800)555-27-10 звонок по России бесплатный<br />
                    <strong>E-mail</strong>: info@dom-climata.ru<br />
                    <a href="http://dom-climata.ru/about/contacts/" target="_blank">Контактная информация на сайте дилера</a>
                '
            }
        }, {
            // Опции.

После вставки html-кода в "balloonContent" карта перестала отображаться. Я так понял проблема в синтаксисе, так как в notepad у меня не подсвечивает только первый тэг <strong>, остальные теги подсвечивает. Что неправильного?

Или лучше использовать код из этой документации?

2 комментария
API 2.0,метка,Javascript,html,балун
Растягивается высота метки на все окно карты в браузере Internet Explorer
adeptweb
6 марта 2013, 14:22

Растягивается высота метки на все окно карты в браузере Internet Explore, в 6 и 9 версиях точно, в остальных не проверяли, в хроме нормально. Используем "Мои Карты"

 

    <script type="text/javascript">

        ymaps.ready(function () {

 

            // Создание экземпляра карты

            var map = new ymaps.Map('map', {

                center: [56.071,92.94],

                zoom: 12

            });

 

            map.controls

                // Добавление кнопки изменения масштаба

                .add('zoomControl')

                // Линейка масштаба

                .add('mapTools');

 

            // Загрузка YMapsML-файла

            ymaps.geoXml.load("http://maps.yandex.ru/export/usermaps/QwlY1wI3fJtBIEjuiOVJFHjoPex-AQel/").then(

                function (res) {

                    // Установка границ карты по границам области содержащей все объекты из YMapsML.

                    var bounds = res.mapState && res.mapState.getBounds();

 

                    bounds && map.setBounds(bounds);

 

                    // Изменение стилей меток на DotIcon

                    // Список всех доспутных стилей можно найти в документации

                    // http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/option.presetStorage.xml

                    res.geoObjects.each(function (item, index) {

                        var preset = item.options.get('preset')

                            .replace('default', 'twirl')

                            // .replace('Point', 'DotIcon');

                            .replace('Point', 'StretchyIcon');

 

                        item.options

                            .set('preset', preset);

 

                        item.properties

                            .set('metaDataProperty.AnyMetaData.number', item.properties.get('name'));

                    });

                    map.geoObjects.add(res.geoObjects);

                },

                // Вызывается в случае неудачной загрузки YMapsML-файла

                function (error) {

                    alert("При загрузке YMapsML-файла произошла ошибка: " + error);

                }

            );

        });

    </script>

 

 

 Может кто встречался с проблемой?

 

12 комментариев
API 2.0,метка,IE,html