Имя: Пароль:
1C
1С v8
Yandex карты API 2.0 вывести подсказку к метке при наведении мыши на метку
, ,
0 Анатоль
 
12.10.12
00:27
Здесь
http://webmap-blog.ru/examples/ymap-api-v2/ymap_api2_pr2-4.html реализован вывод всплывающей подсказки при наведении на метку.
Вопрос: как такое же реализовать в 1С.
1 Анатоль
 
12.10.12
00:28
Я когда присваиваю такой же код HTML документу, то подсказка не выводится :(
2 IamAlexy
 
12.10.12
00:29
8.3.2 заюзать
3 IamAlexy
 
12.10.12
00:29
а ты про яндекс в форме 1Са...
смари на инфосрате  - там вроде было решение с подсказкой
4 Анатоль
 
12.10.12
11:42
(3) Посмотрел на инфостарте, там вообще по работе с API 2.0 мало обработок. И такого как я спрашиваю пока нет
5 Ursus maritimus
 
12.10.12
11:52
(0) А саму метку получилось поставить?
6 Ursus maritimus
 
12.10.12
11:52
Если да, то не вижу проблем
7 Ursus maritimus
 
12.10.12
11:55
function setPlacemark (latitude, longitude, txt, balloonContent, style,CollectionName,ImageURL){
           // Создаем метку и задаем изображение для ее иконки
           myPlacemark = new ymaps.Placemark([latitude, longitude],{
               balloonContent: balloonContent,
               iconContent: txt
           },{
               preset: style,
               iconImageHref: ImageURL
           });
8 Ursus maritimus
 
12.10.12
11:56
Элементы.ТекстHTML.Документ.parentWindow.eval("setPlacemark("+ФорматКоординат(Широта)+", "+ФорматКоординат(Долгота)+", '"+ТекстМетки+"', '"+ТекстБаллуна+"', '"+Стиль+"', '"+Коллекция+"')");
9 Ursus maritimus
 
12.10.12
11:57
(7) Добавить в код страницы (допилить для вывода всплывающего сообщения)
(8) Вызов из 1С
10 Анатоль
 
12.10.12
13:07
(9) метка вставлена, свойство "iconContent: " задано, а вот всплывающей подсказки не появляется.
У меня метка ставится при инициализации карты.
Вот код
function init () {
   // Создание экземпляра карты и его привязка к контейнеру с заданным id (""map"")
   var myMap = new ymaps.Map('map', {
   // При инициализации карты, обязательно нужно указать
   // ее центр и коэффициент масштабирования
   center: [56.315695,44.017063], // Нижний Новгород
   zoom: 15
   });

   // Создание метки
   var myPlacemark = new ymaps.Placemark(
       // Координаты метки
       [56.315695,44.017063] , {
       // Свойства
       // Текст метки
       hintContent: 'Подсказка при наведении на метку'
       });    
   // Добавление метки на карту
   myMap.geoObjects.add(myPlacemark);
  }

Как сделать, чтоб ставить такие метки после инициализации карты я пока не разобрался.
Попробовал добавить функцию setPlacemark после функции init и дописать после ЭлементыФормы.ПолеHTML.УстановитьТекст(МойХТМЛ_Текст);
вот эту строку
ЭлементыФормы.ПолеHTML.Документ.parentWindow.eval("setPlacemark(56.315695, 44.017063, 'Описание метки', 'Или вот такое описание метки', '', '')");
так выдало программную ошибку.
11 Анатоль
 
12.10.12
13:09
(9) понимаю что 1С не обрабатывает какое-то событие HTML текста, но как его обработать самостоятельно, пока не нашёл.
12 Анатоль
 
12.10.12
14:17
(9) и кстати мне нужно устанавливать не iconContent а hintContent
iconContent у меня выводится, но ОООчень криво, особенно если установить автоматическую подгонку размера метки под текст заголовка метки
13 Анатоль
 
12.10.12
14:20
(9) Но спасибо за методику - теперь я знаю как выполнить JavaScript после того как сформирован HTML документ. (чтоб не получать ошибку типа "Метод объекта не обнаружен (eval)") то нужно либо дополнительную кнопку делать, либо подключать обработчик ожидания, чтоб дать самой карте сформировать свою DOM модель
14 AlexAl-77
 
29.10.12
14:36
уважаемые кто нибудь разобрался с hintContent ?
15 zladenuw
 
29.10.12
14:38
YM = "
|<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">

   |<html xmlns=""http://www.w3.org/1999/xhtml"">

   |<head>
   |    <title>Тест карты в 1с</title>
   |    <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
   |    <script src=""http://api-maps.yandex.ru/2.0-stable/?load=package.full&lang=ru-RU&mode=debug" "type=""text/javascript""></script>

//   |    <script src=""http://yandex.st/jquery/1.6.4/jquery.min.js" "type=""text/javascript""></script>

   |    <script type=""text/javascript"">
   |        var myMap, myPlacemark;
   |   my2 = new ymaps.ready(function () {
   |            myMap = new ymaps.Map (""map"", {
   |                center: [55.76, 37.64],
   |                zoom: 7
   |            });
   |            myPlacemark = new ymaps.Placemark([55.76, 37.64], {
   |                content: 'Москва!',
   |                balloonContent: 'Столица России'
   |            });
   |            myMap.geoObjects.add(myPlacemark);
   |        });
   |    </script>
   |</head>
   |<body>
   |    <div id=""map"" style=""width: 600px; height: 400px""></div>
   |</body>
   |</html>
   |";
   
   ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(YM);
16 zladenuw
 
29.10.12
15:04
myMap.hint.show(
   // Координаты подсказки
   myMap.getCenter(),
   // Контент подсказки
   "Москва", {
       /* Опции подсказки:
          - задержка показа хинта */
       showTimeout: 2000
   }
)
Позиция всплывающей подсказки может быть задана как в географических, так и пиксельных координатах (при указании пиксельных координат нужно передать специальную проекцию).
17 zladenuw
 
29.10.12
15:05
18 AlexAl-77
 
29.10.12
15:51
только так? у меня просто подсказка на полигоне который постоянно перемещают. и он не один.
19 AlexAl-77
 
30.10.12
08:43
Кто нибудь понимает из-за чего не работает? просто зная причину можно написать разработчикам.
20 AlexAl-77
 
30.10.12
16:18
myMap.hint.show(
   // Координаты подсказки

   myMap.getCenter(),
   // Контент подсказки

   "Москва", {
       /* Опции подсказки:
          - задержка показа хинта */
       showTimeout: 2000
   }
)
Тоже не работает
21 AlexAl-77
 
31.10.12
14:23
Еще раз подниму тему. очень нужно.
22 grunt007
 
04.11.12
21:02
Попробуйте
ПолеHTML.Перейти("file://c:/.../карта.html")
вместо
ПолеHTML.УстановитьТекст()

мне помогло, и метки с текстом стали нормально выглядеть
23 grunt007
 
04.11.12
21:06
да, еще, и ошибка сценария при открытии не выскакивает