Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для save
4 / 4 / 2
Регистрация: 20.05.2013
Сообщений: 97
Яндекс Карты API

Не корректно работают кастомные иконки Яндекс.Карты

25.10.2018, 22:04. Показов 2732. Ответов 1

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане!

Пытаюсь разработать генерацию карты с заранее определёнными по координатам точками. Сначала информация о точках на карте собирается в массив в PHP:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$mapData['features'][]=array(
    "type"=>"Feature",
    "id"=>$numb,
    "geometry"=>array(
        "type"=>"Point",
        "coordinates"=> Array(55,55),//взял координаты для примера
    ),
    "options"=>Array(
      "iconLayout" => 'default#image',
      "iconImageHref" => '/images/icon.png',
      "iconImageSize" => Array(24, 30),
      "iconImageOffset" => Array(10,10),
    ),
    "properties"=>array(
        "balloonContentBody" => $contentBody,
        "balloonContentFooter"=>"",
        "iconCaption"=> $item['NAME'],
        'iconContent' => '',
        "iconCaptionMaxWidth"=> '300',
        "hintContent"=>"<strong>".$item['NAME']."</strong>"
    ),
 
);
Далее, когда массив собран, преобразуем его в javascript-массив и вставляем в скрипт карты:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(document).ready(function(){
    ymaps.ready(init);
 
});
function init () {
    var dataR=<?=CUtil::PhpToJSObject($JsonData)?>;
    var myMap = new ymaps.Map('map', {
        center: [55.50, 37.64],
        zoom: 10,
        controls:['zoomControl']
    }, {
        searchControlProvider: 'yandex#search'
    }),
    objectManager = new ymaps.ObjectManager({
        clusterize: false,
        gridSize: 32,
        clusterDisableClickZoom: true
    });
    myMap.behaviors.disable('scrollZoom');
    myMap.geoObjects.add(objectManager);
    objectManager.add(dataR);
    myMap.setBounds(objectManager.getBounds(), {
        checkZoomRange: true
    });   
}
Проблема в том, что когда я указываю создание кастомной иконки для метки (элемент массива "options" в первом курсе php-кода), то она генерируется, но по нажатию на неё ничего не происходит - то есть контент "балуна" не открывается. Как только из основного массива мы убираем "options" - всё начинает работать корректно со стандартными метками.

В чем проблема, может кто-нибудь подсказать?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2018, 22:04
Ответы с готовыми решениями:

Яндекс карты не работают на сайте
Привет. Всё никак не могу разобраться с картами яндекса. Они вообще не появляются на сайте. Захожу в конструктор карт на яндексе, копирую у...

Яндекс карты не работают - показывают сетку
Здравствуйте уважаемые форумчане! Делал все по этой документации: ...

Java Android - сделать кнопку "показать адрес на карте", которая вызывает яндекс-карты или яндекс-навигатор и гугл-карты
Доброго дня, формучане! Подскажите, как сделать возможность из моего приложения при клике по кнопке &quot;Показать на карте&quot; перейти...

1
 Аватар для save
4 / 4 / 2
Регистрация: 20.05.2013
Сообщений: 97
26.10.2018, 11:51  [ТС]
Проблему удалось решить. В элемент массива options нужно было добавить массив iconShape.
У меня получилось так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$mapData['features'][]=array(
    "type"=>"Feature",
    "id"=>$numb,
    "geometry"=>array(
        "type"=>"Point",
        "coordinates"=> Array(55,55),//взял координаты для примера
    ),
    "options"=>Array(
      "iconLayout" => 'default#image',
      "iconImageHref" => '/images/icon.png',
      "iconImageSize" => Array(24, 30),
      "iconImageOffset" => Array(10,10),
      "iconShape" => Array(
            "type" => 'Circle',
            "coordinates" => array(0, 0),
            "radius" => 25
          ),
    ),
    "properties"=>array(
        "balloonContentBody" => $contentBody,
        "balloonContentFooter"=>"",
        "iconCaption"=> $item['NAME'],
        'iconContent' => '',
        "iconCaptionMaxWidth"=> '300',
        "hintContent"=>"<strong>".$item['NAME']."</strong>"
    ),
 
);
Подробнее: https://tech.yandex.ru/maps/do... .iconShape
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2018, 11:51
Помогаю со студенческими работами здесь

Запустить яндекс карты и яндекс навигатор в оффлайн режиме под андройд
Народ кто-нить смог запустить яндекс карты и яндекс навигатор в оффлайн режиме под андройд, приложение само предлагает скачать всю карту...

Найти оптимальный zoom карты (яндекс карты)
Есть массив с координатами (Х, У). Как найти оптимальный zoom, (от 1го до 17) чтобы все точки из массива попадали в область карты... ...

Как корректно(правильно) создавать "кастомные" потоки в Spring
Можно ли запускать потоки таким образом и является ли данная реализация корректной? public class CustomThread extends Thread { ...

Яндекс карты и Яндекс MapKit
Передо мной стоят такие задачи: показать карту, на ней показать маркеры на определенных координатах, построить маршрут между задаными...

Иконки у части программ, для запуска которых нужны права администратора, выглядят не корректно
Т.к. часто приходится работать с флешками и не хочется ничего подцепить, включил UAC с рекомендуемым уровнем безопасности. Теперь иконки у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru