Почему нет значка картинки яндекс карты
Перейти к содержимому

Почему нет значка картинки яндекс карты

  • автор:

«Яндекс Карты» и «Навигатор» стали предупреждать водителей о приближении к ж/д переезду

В приложениях «Яндекс Карты» и «Яндекс Навигатор» появилась функция оповещения водителей перед приближением к железнодорожному переезду. Об этом сообщается в телеграм-канале столичного Дептранса.

«Теперь в приложениях «Яндекс Карты» и «Яндекс Навигатор» при приближении к железнодорожному переезду водитель услышит голосовое предупреждение «Впереди железнодорожный переезд», – говорится в сообщении.

В телеграм-канале «Телеграмма РЖД» объяснили, что иконка поезда появляется на этапе выбора маршрута. Новая функция позволит водителям лучше планировать поездки и быть более сконцентрированными в пути.

За 2022 год на железнодорожных переездах в России произошло 218 аварий. В них пострадали и погибли 123 и 37 человек соответственно. Практически аналогичная ситуация наблюдалась и в 2021 году.

В свою очередь, в столичном Дептрансе уточнили, что для снижения числа ДТП с участием автомобилей и поездов с 2012 года в Москве построили большое количество многоуровневых путепроводов. Благодаря проверке сооружения сотрудниками департамента, ГИБДД и РЖД в 2022 году с участием машины и поезда не произошло ни одной аварии.

«Надеемся, что дополнительные опции в навигации помогут сохранить бдительность и предотвратить беду», – говорится в сообщении РЖД.

Ранее сервис «Яндекс Карты» выпустил бета-версию с детализированными дорогами в пределах московского Третьего транспортного кольца. В бета-версии можно попробовать умный указатель маршрута. Он подскажет, с какой стороны дороги ехать, чтобы не пропустить свой поворот.

  • «Яндекс Навигатор» объяснил ошибки в работе сервиса возможным сбоем в системе GPS
  • В «Яндекс Картах» появились маршруты для грузовиков

Как испортить полезный сервис (на примере Яндекс.Карт)

У Яндекса есть замечательный продукт — Яндекс.Карты. Значение этого инструмента уже, наверное, трудно переоценить: многие из нас пользуются Картами каждый день.

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

Но без умелого модерирования любой продукт, в котором участвуют конечные пользователи, может серьёзно испортиться. Сейчас на примере Яндекс.Карт я покажу, как это происходит.

Нет, речь не о мате в «Разговорчиках». Без него даже не так весело. Сейчас разговор пойдёт о ситуации, когда, видимо, из лучших побуждений делают хуже. В принципе, уже многое понятно из первой картинки:

Это трасса М4. Наверное, лучшая трасса в России. Действительно мировой уровень: можно прямо после МКАД поставить машину на круиз-контроль и без лишнего напряжения за 4 с небольшим часа доехать, например, до Воронежа. Дорога сделана по всем стандартам. В частности, пешеходные переходы видно издалека. Знаки везде есть, они выполнены со светоотражающим покрытием.

Итак, в чём проблема? Проблема в том, что какая-то организация (в данном случае, Автодор) берёт инструмент для оповещения других о непредвиденных опаностях («восклицательный знак») и использует его таким образом, что он перестаёт быть значимым средством информирования. Всё как в древней притче про мальчика и волков. Если предупреждаешь — осознавай ответственность за свои слова. Иначе на 25-й раз тебя перестают слушать.

Скорее всего, чья-то чугунная голова во исполнение Высочайшего повеления о снижении смертности на дорогах, додумалась привести мероприятия, направленные на снижение, и прочая, и прочая… Вышло дико. Водитель, который хочет узнать, нет ли впереди ничего непредвиденного — аварий, пробок, перекрытий — вынужден много-много раз прочесть, что впереди будет пешеходный переход. Зачем?? На местности, повторюсь, переходы и так отлично видны, дорога построена по всем правилам.

Вот ещё пример. Москва:

Такой дурью маются уже достаточно давно. «Аварийно-опасный участок», сразу 4 предупреждения, налепленные почти что на одно и то же место. Какую конструктивную информацию дают эти предупреждения, которыми буквально утыкан весь МКАД на Яндекс.Картах? Водитель что должен сделать? Memento mori?

Современный водитель и так замордован всякой раздражающей информацией: плотность самого потока движения, реклама, предупреждения о камерах, бесчисленные развязки. И вот, когда он хочет свериться с картой, у него теперь кругом тоже раздражающие пометки, не несущие никакого практического смысла. Короче, сплошная невротизация. А нервированный водитель будет адекватнее вести себя на дороге.

И вот ещё какой вред от такого подхода. Например, это действительно полезное предупреджение:

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

Короче говоря, информация, передаваемая в рамках одной социальной сети, деятельность в которой направлена на решения конкретных задач (например, как Яндекс.Карты — картографическая информация, сопровождаемая участниками движения по поводу особенностей на местности), должна иметь вполне отформатированный, понятный вид. Так потери на расшифровку информации сведутся к минимальному уровню. А тем более, когда человек за рулём, время, на которое он отвлекается от управления с целью получить эту информацию из Яндекс.Карт, должно стремиться к минимуму.

Пример краткого и максимально понятного сообщения:

Здесь думать нечего: увидел краем глаза знак «перекрытие» и участок дороги, всё мгновенно понятно. Даже дублирование пиктограмм может не наносить вреда, а наоборот, сообщать водителю протяжённость ремонтируемого участка:

Здесь тоже всё понятно: ответ на вопрос «что случилось и почему затор» считывается пользователем мгновенно

А вот инструмент «восклицательный знак» уже далеко не так эффективен, когда мы хотим предупредить других водителей о чём-то действительно важном. Спасибо буратинам из больших организаций.

Этот момент рано или поздно (скорее рано) настаёт в жизни любой социальной сети (в широком понимании: там, где много людей взаимодействует друг с другом). То, что изначально проектируется как инструмент для взаимодействия с другими поверх обычного (это может быть caps-lock, выделение текста цветом, баннеры с призывом о помощи ребёнку, и т.д. и т.п.), легко портится, когда один из агентов ради решения сиюминутных задач начинает использовать его для привлечения максимального внимания. В итоге страдает вся экосистема сети: её агенты перестают должным образом реагировать на подобные предусмотренные конструкцией раздражители, либо заметно снижается скорость восприятия значимой информации.

В мало-мальски широком сообществе всегда найдутся группы людей, которые будут действовать вопреки долговременным интересам сообщества, преследуя свои личные цели.

И жаль, что Яндекс пускает этот процесс на самотёк.

  • яндекс.карты
  • web 2.0
  • социальный сервис
  • Usability
  • Яндекс API
  • Управление продуктом

Как изменить иконку маркера в Яндекс картах

Для изменения стандартных элементов карты, а так же для реализации множества других задач связаных с Яндекс-картами и геопозиционированием, понадобится использование специального API. В этом материале мы попробуем решить достаточно простую, но распространенную задачу: поменяем стандартную картинку маркера.

Навигация по статье:

  1. Получение API-ключа
  2. Вывод карты
  3. Замена маркера
  4. Функция для добавления нескольких адресов на карту
    1. Меняем демонстрационный скрипт
    2. Определение координат для Яндекс Карты

    Получение API-ключа

    Чтобы использовать API Яндекс.Карт нам понадобится свой ключ, который любезно предоставит Яндекс после регистрации по этой ссылке. После регистрации нам будет доступно подключение различных API Яндекса. Из всего перечня нас интересует JavaScriptAPI и HTTP Геокодер. Откроется форма, где нам предложат ответить на «несколько вопросов»: ввести контактные данные, а так же ссылку на сайт, где будет использоваться API.

    окно регистрации API

    Далее, создайте новый ключ.

    создание нового ключа

    api-ключ

    И вот перед нами заветные цифры.

    Вывод карты

    Ключ у нас есть и теперь мы можем заняться выводом карты. Для этого вставим полученные цифры в данную строчку:

      

    Полученный код необходимо разместить в head вашего сайта.

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

    Далее, определим контейнер для вывода карты в теле сайта. В нашем случае это будет div c :

    У себя я так же инлайново добавлю стили, чтобы карта растянулась по высоте, так как работаю с пустым тестовым документом (если вы работаете над реальным проектом, то, возможно, блок, в который вы поместите карту уже будет иметь высоту). Но, если что, вот стили:

      html, body, #map 

    Затем создадим и подключим к странице js файл, в котором будем задавать координаты, а так же другие параметры карты (сейчас в карту просто нечего помещать, поэтому она не отобразится).

    Я создам файл по аналогии с тем, что предлагает сам Яндекс, а именно icon_customImage.js со следующим содержимым:

     ymaps.ready(function () < var myMap = new ymaps.Map('map', < center: [55.751574, 37.573856], zoom: 9 >, < searchControlProvider: 'yandex#search' >), // Создаём макет содержимого. MyIconContentLayout = ymaps.templateLayoutFactory.createClass( '
    $[properties.iconContent]
    ' ), myPlacemark = new ymaps.Placemark(myMap.getCenter(), < hintContent: 'Собственный значок метки', balloonContent: 'Это красивая метка' >, < // Опции. // Необходимо указать данный тип макета. iconLayout: 'default#image', // Своё изображение иконки метки. iconImageHref: 'images/myIcon.gif', // Размеры метки. iconImageSize: [30, 42], // Смещение левого верхнего угла иконки относительно // её "ножки" (точки привязки). iconImageOffset: [-5, -38] >), myPlacemarkWithContent = new ymaps.Placemark([55.661574, 37.573856], < hintContent: 'Собственный значок метки с контентом', balloonContent: 'А эта — новогодняя', iconContent: '12' >, < // Опции. // Необходимо указать данный тип макета. iconLayout: 'default#imageWithContent', // Своё изображение иконки метки. iconImageHref: 'images/ball.png', // Размеры метки. iconImageSize: [48, 48], // Смещение левого верхнего угла иконки относительно // её "ножки" (точки привязки). iconImageOffset: [-24, -24], // Смещение слоя с содержимым относительно слоя с картинкой. iconContentOffset: [15, 15], // Макет содержимого. iconContentLayout: MyIconContentLayout >); myMap.geoObjects .add(myPlacemark) .add(myPlacemarkWithContent); >);

    Теперь, если мы обновим страницу, то увидим карту без маркеров. Уже кое-что.

    Замена маркера

    Данный демонстрационный файл уже настроен на добавление двух маркеров с разными иконками, но, поскольку у нас нет этих иконок, они не отображаются на карте. Чтобы это исправить, добавим для маркеров свои иконки. Я буду использовать иконки из Witcher 3, которые нарисовал для урока 🙂

     // Своё изображение иконки метки. iconImageHref: 'witcher-marker.svg', // Адрес до картинки // Размеры метки. iconImageSize: [60, 84], // Смещение левого верхнего угла иконки относительно // её "ножки" (точки привязки). iconImageOffset: [-5, -38] 

    Аналогично можно задать иконку и для второй демонстрационной метки. Вот, собственно, и все, что касается замены маркера. По аналогии вы можете создать собственные метки с уникальными маркерами. Дальше мы рассмотрим один из способов простого добавления своих меток.

    Функция для добавления нескольких адресов на карту

    Меняем демонстрационный скрипт

    Для того, чтобы удобно добавлять метки на карту, я написал следующую функцию:

    ymaps.ready(function () < // Поиск координатов: https://yandex.ru/map-constructor/location-tool/ var myMap = new ymaps.Map('map', < // Задаем центр карты center: [59.94267813289089,30.316415999999972], // И масштаб zoom: 15 >, < searchControlProvider: 'yandex#search' >), // Создаём макет содержимого. MyIconContentLayout = ymaps.templateLayoutFactory.createClass( '
    $[properties.iconContent]
    ' ); var createPlacemark = function(markerId, coord_1, coord_2, markerImage, name, addr) < markerId = new ymaps.GeoObject(< geometry: < type: "Point", coordinates: [+coord_1, +coord_2] >, properties: < hintContent: name, balloonContent: addr >>, < // Опции. // Необходимо указать данный тип макета. iconLayout: 'default#image', // Своё изображение иконки метки. iconImageHref: markerImage, // Размеры метки. iconImageSize: [46, 46], // Смещение левого верхнего угла иконки относительно // её "ножки" (точки привязки). iconImageOffset: [-5, -38] >); myMap.geoObjects.add(markerId); >; // Добавление маркеров на карту createPlacemark('myPlacemark_1', '59.94267813289089', '30.316415999999972', 'witcher-power-place.svg', 'Место силы', 'Санкт-Петербург, Эрмитажная пристань '); createPlacemark('myPlacemark_2', '59.93545363045839', '30.326887343994116', 'witcher-marker.svg', 'Квест 1', 'Вход в метро'); createPlacemark('myPlacemark_3', '59.93598684451666', '30.314752621881883', 'witcher-marker.svg', 'Квест 2', 'Вход в метро'); >);

    Вызывая функцию с необходимыми параметрами, мы создаем метки на карте. Как видите, можно задать разные иконки для каждой метки. Центр карты, а так же масштаб задаются в начале файла (помечено комментариями).

    Получившаяся карта

    Определение координат для Яндекс Карты

    Координаты для меток можно брать отсюда. Все просто: ищите адрес или объект на карте и забираете себе координаты этого места (координаты отображаются в правом нижнем углу). Там же можно определить координаты центра карты и масштаб.

    Заключение

    Подробнее узнать о Яндекс.API и, в частности, об API карт и замене маркера вы можете по ссылке на офф.инструкцию.

    Как изменить значок маркера в Yandex maps?

    Нужно сделать, что бы вместо оригинального значка маркера был тот, что я пришил к посту. В настройках модуля загрузки нет, через ксс пробовал менять, сработало, но криво, ибо вёрстка сделана под иконку с хвостиком у маркера справа как в оригинале, а не по середине как у меня(у моего варианта хвостик скрыт и я не знаю как его выковырять).

    Вложение Размер
    Иконка изображения111.png 2.37 КБ
    • Drupal7
    • Решение проблем
    • Блог
    • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

    Комментарии

    Apuox 27 мая 2015 в 15:26

    Чтобы получить доступ к маркеру и другим функциям необходимо создать карту программно. Для начала необходимо подключить сам скрипт карт:

    Далее создаем карту по параметрам описанным ниже (более подробно описанные примеры и информацию можно найти здесь https://tech.yandex.ru/maps/jsbox/2.1/ ):

    ymaps. ready ( init ) ;
    function init ( ) <
    var myMap3 = new ymaps. Map ( «map3» , <
    center : [ 55.77127434 , 37.63492426 ] ,
    zoom : 17 ,
    controls : [ «zoomControl» ]
    > ) ;

    myMap3. controls . add ( ‘fullscreenControl’ , < float : 'left' >) ;
    // Создаем геообъект с типом геометрии «Точка».
    myGeoObject = new ymaps. GeoObject ( ) ;
    myMap3. geoObjects
    . add ( new ymaps. Placemark ( [ 55.77101400 , 37.63209300 ] , <
    balloonContent : ‘Ул. Уличная,д. 22’
    > , <
    // Опции.
    // Необходимо указать данный тип макета.
    iconLayout : ‘default#image’ ,
    // Своё изображение иконки метки.
    iconImageHref : ‘/images/map_icon.png’ ,
    // Размеры метки.
    iconImageSize : [ 203 , 254 ] ,
    // Смещение левого верхнего угла иконки относительно
    // её «ножки» (точки привязки).
    iconImageOffset : [ — 80 , — 254 ]
    > ) ) ;

    Центр карты можно найти как из url на яндекс карте (там просто много чисел, и можно сразу не разобраться), так и сторонним способом, например: http://webmap-blog.ru/tools/getlonglat-ymap2.html

    В функции init(), есть строка вида:

    var myMap3 = new ymaps. Map ( «map3» , <

    где «map3», указатель на блок вида:

    Соответственно по вышеуказанным параметрам скрипта можно сформировать:
    — позицию центра карты, и отдельно позицию маркера (в случае когда он должен быть не по центру, и смещен, в углу например)
    — кастомный маркер (необходимо указать его размер, можно настоящий а можно и смашстабированный + смещение относительно точки, предполагая, что маркер расположен справа внизу от указанной точки маркера)
    — так же необходимо указать/подобрать необходимый масштаб карты
    — можно добавить необходимые виджеты (фулскрин, линейку и т.п.)

    upd: в последствии блоку map3 необходимо задать высоту+ширину, дабы его было видно.

    • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
    • Реакции

    VVS 22 июня 2017 в 12:46

    В коде пропущено закрытие >;

    • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
    • Реакции

    Кришпер 26 июня 2015 в 10:52

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

    //
    $bb = $node;
    //
    $bb1 = $bb-> field_of_map[‘und’][0][‘placemarks’] ;
    $bb5 = $bb->field_of_map[‘und’][0][‘placemarks’] ;
    //
    $bb2 = json_decode($bb1)[0]->params;
    //
    //print_r( json_decode($bb1)[1]->coords );
    $bb1 = json_decode($bb1)[0]->coords;

    //
    $bb = $bb->field_of_map[‘und’][0][‘coords’];
    $bb = json_decode($bb);
    ?>

    function init() <
    myMap = new ymaps.Map(«map», center: [ center[0]; ?>, center[1]; ?>] center; ?>,
    zoom: zoom; ?>
    >);
    $arrY = » ;
    // json_decode ( $bb1 ) [ 0 ] -> coords;
    foreach( json_decode($bb5) as $key => $e ) <
    $e1 = $e->coords;
    $e2 = $e->params->iconContent; //[params] => stdClass Object ( [color] => white [iconContent]
    $arrY .= ‘.add(new ymaps.Placemark([‘.$e1[0].’,’.$e1[1].’], ‘hintContent: «‘.$e2.'»‘.
    ‘>, ‘iconLayout: «default#image»,’.
    ‘iconImageHref:»‘.$base_url.’/themes/bartik/images/ikon_yand.png’.'»,’.
    ‘iconImageSize: [135, 79],’.
    ‘iconImageOffset: [-62, -79]’.
    ‘>))’;
    >
    print ‘myMap.geoObjects’.$arrY.’;’;
    ?>
    >
    < / script >

    • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
    • Реакции

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *