|
v8: Yandex карты в 1С? | ☑ | ||
---|---|---|---|---|
0
Santa4527
31.08.11
✎
11:00
|
Есть такая замечательная возможно показывать адрес на яндексе.
Отмечается точка на карте и при клике на точку выводиться адрес. Можно показывать не адрес а, например что бы показывал наименование контрагента? Если да то как? Процедура КнопкаВыполнитьНажатие(Кнопка) КодХТМЛ = " |<!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>Примеры. Геокодирование.</title> | <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /> | <script src=""http://api-maps.yandex.ru/1.1/index.xml?key=AGWk-0sBAAAAu2BPFgIAxJX5bVBDeI0Rx-X2RVaxVaSFdssAAAAAAAAAAADMbczTgn2tTY5RyeeXQ8O7a3fzyA=="" type=""text/javascript""></script> | <script type=""text/javascript""> | var map, geoResult; // Создание обработчика для события window.onLoad | YMaps.jQuery(function () { // Создание экземпляра карты и его привязка к созданному контейнеру | map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]); // Установка для карты ее центра и масштаба | map.setCenter(new YMaps.GeoPoint(30.357528,59.993461), 16); | var toolBar = new YMaps.ToolBar(); | map.addControl(toolBar); | map.addControl(new YMaps.Zoom()); | map.addControl(new YMaps.TypeControl()); | map.enableScrollZoom(); | }); // Функция для отображения результата геокодирования // Параметр value - адрес объекта для поиска | function showAddress (value) { // Запуск процесса геокодирования | var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()}); // Создание обработчика для успешного завершения геокодирования | YMaps.Events.observe(geocoder, geocoder.Events.Load, function () { // Если объект был найден, то добавляем его на карту // и центрируем карту по области обзора найденного объекта | if (this.length()) { | geoResult = this.get(0); | map.addOverlay(geoResult); | map.setBounds(geoResult.getBounds()); |}else { | alert(""Ничего не найдено"") | } | }); // Процесс геокодирования завершен неудачно | YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) { | alert(""Произошла ошибка: "" + error); | }) |} //Тут функция, которая формируется динамически |//~~Функция showA~~ |</script> |</head> |<body //~~onload~~> | <div id=""YMapsID"" style=""width:1000px;height:600px""></div> |</form> |</body> | |</html> |"; ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(КодХТМЛ); ПоказатьАдреса(); КонецПроцедуры Процедура ПоказатьАдреса () МассивАдресов = Новый Массив; Для Каждого стр из АдресНаКарте Цикл МассивАдресов.Добавить(стр.Значение); КонецЦикла; //МассивАдресов = Адреса.ВыгрузитьКолонку("Адрес"); НачФункции = "function showA () {"; ТелоФункции = ""; Для каждого Элемент Из МассивАдресов Цикл ТелоФункции = ТелоФункции + Символы.ПС + "showAddress('"+Элемент+"')"; КонецЦикла; КонФункции = Символы.ПС + "}"; ФункцияShowA = НачФункции + ТелоФункции + КонФункции; КодХТМЛ = СтрЗаменить(КодХТМЛ,"//~~Функция showA~~",ФункцияShowA); КодХТМЛ = СтрЗаменить(КодХТМЛ,"//~~onload~~","onload = ""javascript:showA()"""); ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(КодХТМЛ); КонецПроцедуры; |
|||
1
Santa4527
31.08.11
✎
11:01
|
v8: Yandex карты в 1С?
|
|||
2
Reaper_1c
31.08.11
✎
11:06
|
Ох как мне доставил заголовок! Продай название яндексу!
|
|||
3
IamAlexy
31.08.11
✎
11:06
|
на инфасрате этих примеров работающих - хоть попой еш
|
|||
4
alex-pro
31.08.11
✎
11:08
|
Яндекс покарал 1С? )))
|
|||
5
also
31.08.11
✎
11:08
|
хы... Все моим кривым кодом через пользуются :)
|
|||
6
Santa4527
31.08.11
✎
11:10
|
(3) Там везде отображается Адрес, а нужно наименование контрагента.
|
|||
7
also
31.08.11
✎
11:11
|
(6) сделаю... но за большие деньги
|
|||
8
Santa4527
31.08.11
✎
11:11
|
(5) Спасибо за код!
Может, подскажешь с проблемой? |
|||
9
Murzz
31.08.11
✎
11:12
|
Тоже недавно работал с картами гугл и яндекс. Только основную часть кода писал на яваскрипте, и вызывал яваскриптовые процедуры из 1С.
Ты хочешь кликать на произвольную точку на карте? Как у тебя задается сответствие контрагентов и точек на карте? |
|||
10
acsent
31.08.11
✎
11:12
|
||||
11
Santa4527
31.08.11
✎
11:22
|
(9) Точки все есть. Нужно что бы вместо адреса было наименование контрагента.
Для каждого Элемент Из МассивАдресов Цикл ТелоФункции = ТелоФункции + Символы.ПС + "showAddress('"+Элемент+"')"; КонецЦикла; Добавления адресов в процедуру. |
|||
12
also
31.08.11
✎
11:25
|
(11) контрагента ты откуда брать собрался?
|
|||
13
Santa4527
31.08.11
✎
11:28
|
(12)
в АдресНаКарте есть ссылка на контрагента. Для Каждого стр из АдресНаКарте Цикл МассивАдресов.Добавить(стр.Значение); КонецЦикла; |
|||
14
also
31.08.11
✎
11:31
|
(13) эт надо яваскрипт знать... Я не знаю
|
|||
15
Santa4527
31.08.11
✎
11:44
|
!!!
|
|||
16
Murzz
31.08.11
✎
11:49
|
в функцию, которая показывает адрес на карте, передавай параметром наименование контрагента, и если адрес найден, открывай на карте на найденном адресе балун с именем контрагента. (см. map.openBalloon() )
|
|||
17
ВикторП
31.08.11
✎
11:55
|
хорошо бы не наименование выводить, а гиперссылку - на ней нажал- в поле, где карта и вывел форму элемента контрагент
|
|||
18
Murzz
31.08.11
✎
12:01
|
как-то так это будет
для примера вызови showAddress("Иркутск", "имя контрагента") function showAddress (value, desc) { // Запуск процесса геокодирования var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()}); // Создание обработчика для успешного завершения геокодирования YMaps.Events.observe(geocoder, geocoder.Events.Load, function () { // Если объект был найден, то добавляем его на карту // и центрируем карту по области обзора найденного объекта if (this.length()) { geoResult = this.get(0); // map.addOverlay(geoResult); map.openBalloon(this.get(0).getGeoPoint(), desc, {mapAutoPan:false}); map.setBounds(geoResult.getBounds()); }else { alert("Ничего не найдено") } }); // Процесс геокодирования завершен неудачно YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) { alert("Произошла ошибка: " + error); }) } (17) Это сложнее, но тоже можно |
|||
19
Murzz
31.08.11
✎
12:03
|
(18) если будешь это в 1С втыкать, кавычки двойные не забудь поставить
|
|||
20
Santa4527
31.08.11
✎
12:22
|
(18) СПАСИБО! Сейчас посмотрю!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |