Диплом: Автоматизация процессов транспортной логистики для ООО «Строймир»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
87
Результат = "," +
СокрЛП(Запись.Поле1) + ", " +
СокрЛП(Запись.Поле2) + ", " +
СокрЛП(Запись.Поле3) + ", " +
СокрЛП(Запись.Поле4) + ", " +
СокрЛП(Запись.Поле5) + ", " +
СокрЛП(Запись.Поле6) + ", " +
СокрЛП(Запись.Поле7) + ", " +
СокрЛП(Запись.Поле8) + ", " +
СокрЛП(Запись.Поле9);
Иначе
Результат = Запись.Представление;
КонецЕсли;
Если ПустаяСтрока(СтрЗаменить(Результат, ",", "")) Тогда
Результат = "";
КонецЕсли;
Возврат Результат;
КонецФункции
// Функция выполняет "преобразование" строкового представления адреса в структуру
Функция ПолучитьСтруктуруАдресаИзСтроки_(Знач СтроковыйАдрес) Экспорт
Если ПустаяСтрока(СтроковыйАдрес) Тогда
Возврат Неопределено;
КонецЕсли;
ЧислоВхожденийЗапятойВАдрес = СтрЧислоВхождений(СтроковыйАдрес, ",");
Если ЧислоВхожденийЗапятойВАдрес = 9 Тогда
СтруктураАдреса = РазложитьАдрес_(СтроковыйАдрес);
ИначеЕсли ЧислоВхожденийЗапятойВАдрес >= 1 Тогда
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("ЗаПределамиРФ", Истина);
СтруктураАдреса.Вставить("Страна", СокрЛП(Лев(СтроковыйАдрес, Найти(СтроковыйАдрес,
",") - 1)));
СтруктураАдреса.Вставить("Представление", СтроковыйАдрес);
Иначе
// вообще запятых нет в представлении два варианта,
// либо задана только страна, но не Россия
// либо необычный Российский Адрес
КлассификаторСтраны =
Справочники.КлассификаторСтранМира.НайтиПоНаименованию(ВРег(СтроковыйАдрес), Истина);
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("ЗаПределамиРФ", Истина);
Если НЕ ЗначениеЗаполнено(КлассификаторСтраны) Тогда
// необычный российский адрес
СтруктураАдреса.Вставить("Страна",
Справочники.КлассификаторСтранМира.Россия.Наименование);
СтруктураАдреса.Вставить("Представление", СтроковыйАдрес);
Иначе
СтруктураАдреса.Вставить("Страна", СтроковыйАдрес);
СтруктураАдреса.Вставить("Представление", "");
КонецЕсли;
88
КонецЕсли;
Возврат СтруктураАдреса;
КонецФункции
//Функция по структуре с адресом возвращает его представление
Функция ПолучитьПредставлениеАдресаПоСтруктуре_(СтруктураАдреса) Экспорт
ТекПредставление = "";
Если СтруктураАдреса = Неопределено Тогда
Возврат ТекПредставление;
КонецЕсли;
АдресЗаПределамиРФ = Неопределено;
СтруктураАдреса.Свойство("ЗаПределамиРФ", АдресЗаПределамиРФ);
Если АдресЗаПределамиРФ = Неопределено Тогда
АдресЗаПределамиРФ = Ложь;
КонецЕсли;
Если Не АдресЗаПределамиРФ Тогда
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Индекс), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Регион), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Район), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Город), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление,
СокрЛП(СтруктураАдреса.НаселенныйПункт), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Улица), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Дом), ", дом
№ ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Корпус), ",
корпус ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Квартира), ",
кв.");
Если СтрДлина(ТекПредставление) > 2 Тогда
ТекПредставление = Сред(ТекПредставление, 3);
КонецЕсли;
Иначе
ТекПредставление = ?(СтруктураАдреса.Представление = "", СтруктураАдреса.Страна,
СтруктураАдреса.Представление);
КонецЕсли;
Возврат ТекПредставление;
КонецФункции
// Функция возвращает представление адреса собранного из полей значений Поле1 - Поле10
Функция ПолучитьПредставлениеАдреса_(Запись)
ТекПредставление = "";
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле1), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле2), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле3), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле4), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле5), ", ");
89
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле6), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле7), ", дом № ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле8), ", корпус ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(Запись.Поле9), ", кв.");
Если СтрДлина(ТекПредставление) > 2 Тогда
ТекПредставление = Сред(ТекПредставление, 3);
КонецЕсли;
Возврат ТекПредставление;
КонецФункции
//Процедура дополняет представление адреса строкой
Процедура ДополнитьПредставлениеАдреса_(ТекущееПредставление, Дополнение, СтрокаКонкатенации)
Если Дополнение <> "" Тогда
ТекущееПредставление = ТекущееПредставление + СтрокаКонкатенации + Дополнение;
КонецЕсли;
КонецПроцедуры
//Функция раскладывает строку с данными об адресе (в формате 9 запятых) на элементы структуры
Функция РазложитьАдрес_(Знач СтрокаАдрес)
Страна = "";
Индекс = "";
Регион = "";
Район = "";
Город = "";
НаселенныйПункт = "";
Улица ="";
Дом ="";
Корпус ="";
Квартира ="";
МассивАдрес = РазложитьСтрокуВМассивПодстрок_(СтрокаАдрес);
ЭлементовВМассиве = МассивАдрес.Количество();
Если ЭлементовВМассиве > 0 тогда
Страна = СокрЛП(МассивАдрес[0]);
КонецЕсли;
Если ЭлементовВМассиве > 1 тогда
Индекс = СокрЛП(МассивАдрес[1]);
КонецЕсли;
Если ЭлементовВМассиве > 2 тогда
Регион = СокрЛП(МассивАдрес[2]);
КонецЕсли;
Если ЭлементовВМассиве > 3 тогда
Район = СокрЛП(МассивАдрес[3]);
КонецЕсли;
Если ЭлементовВМассиве > 4 тогда
Город = СокрЛП(МассивАдрес[4]);
КонецЕсли;
Если ЭлементовВМассиве > 5 тогда
НаселенныйПункт = СокрЛП(МассивАдрес[5]);
КонецЕсли;
Если ЭлементовВМассиве > 6 тогда
Улица = СокрЛП(МассивАдрес[6]);
КонецЕсли;
Если ЭлементовВМассиве > 7 тогда
Дом = СокрЛП(МассивАдрес[7]);
КонецЕсли;
90
Если ЭлементовВМассиве > 8 тогда
Корпус = СокрЛП(МассивАдрес[8]);
КонецЕсли;
Если ЭлементовВМассиве > 9 тогда
Квартира = СокрЛП(МассивАдрес[9]);
КонецЕсли;
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("Страна",Страна);
СтруктураВозврата.Вставить("Индекс",Индекс);
СтруктураВозврата.Вставить("Регион",Регион);
СтруктураВозврата.Вставить("Район",Район);
СтруктураВозврата.Вставить("Город",Город);
СтруктураВозврата.Вставить("НаселенныйПункт",НаселенныйПункт);
СтруктураВозврата.Вставить("Улица",Улица);
СтруктураВозврата.Вставить("Дом",Дом);
СтруктураВозврата.Вставить("Корпус",Корпус);
СтруктураВозврата.Вставить("Квартира",Квартира);
Возврат СтруктураВозврата;
КонецФункции
// Функция "расщепляет" строку на подстроки, используя заданный
// разделитель. Разделитель может иметь любую длину.
// Если в качестве разделителя задан пробел, рядом стоящие пробелы
// считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
// игнорируются.
// Например,
// РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти
элементов,
// три из которых - пустые строки, а
// РазложитьСтрокуВМассивПодстрок(" ку му", " ") возвратит массив значений из двух
элементов
//
// Параметры:
// Стр - строка, которую необходимо разложить на подстроки.
// Параметр передается по значению.
// Разделитель - строка-разделитель, по умолчанию - запятая.
//
//
// Возвращаемое значение:
// массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок_(Знач Стр, Разделитель = ",")
МассивСтрок = Новый Массив();
Если Разделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = СокрЛ(Сред(Стр,Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
91
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = Сред(Стр,Поз+ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции // глРазложить
/////////////////////////////////////////////////////////////
Функция ПолучитьПредставлениеАдресаДляПоиска(СтруктураАдреса) Экспорт
ТекПредставление = "";
Если СтруктураАдреса.Свойство("ЗаПределамиРФ", Истина) Тогда
ДополнитьПредставлениеАдреса_(ТекПредставление,
СокрЛП(СтруктураАдреса.Представление), "");
Иначе
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Страна), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Регион), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Район), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление,
СокрЛП(СтруктураАдреса.НаселенныйПункт),", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Улица), ", ");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Дом), ", дом
");
ДополнитьПредставлениеАдреса_(ТекПредставление, СокрЛП(СтруктураАдреса.Корпус), ",
корпус ");
Если СтрДлина(ТекПредставление) > 2 Тогда
ТекПредставление = Сред(ТекПредставление, 3);
КонецЕсли;
КонецЕсли;
Возврат ТекПредставление;
КонецФункции
Перем ТЗ;
Функция ПостроитьМаршрут()
Результат = Ложь;
КодХТМЛ = "";
КодHTML = "";
//к = 0;
Номер = 0;
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("ОтАдоБ");
ТЗ.Колонки.Добавить("Номер");
ТЗ.Колонки.Добавить("АдресОтгрузки");
ТЗ.Колонки.Добавить("АдресДоставки");
Для к = 0 по НаВходе.Количество()-1 Цикл
Для п = 1 по НаВходе.Количество()-1 Цикл
Если п=к Тогда
Продолжить
КонецЕсли;
92
Номер = Номер + 1;
Стр=ТЗ.Добавить();
Стр.ОтАдоБ=""+к+""+п+"";
Стр.Номер=Номер;
//Стр=ТЗ.Добавить();
//Стр.ОтАдоБ=""+к+""+п+"";
//Стр.ОтАдоБ=""+п+""+к+"";
//Стр.Номер=Номер;
АдресОтгрузки = СокрЛП(НаВходе[к].Адрес);
АдресДоставки = СокрЛП(НаВходе[п].Адрес);
Стр.АдресОтгрузки=АдресОтгрузки;
Стр.АдресДоставки=АдресДоставки;
КодХТМЛ = КодХТМЛ + "
| var router"+ Номер +" = new YMaps.Router(
| ['" + АдресОтгрузки + "','" + АдресДоставки + "'],
| [],
| { viewAutoApply: true },
| { avoidTrafficJams: traffic.isShown() }
| );
|
| map.addOverlay(router"+ Номер +");
|
| YMaps.Events.observe(router"+ Номер +", router"+ Номер +".Events.Success,
function () {
| var summaryPanel = document.getElementById(""directions_panel"+ Номер +""");
| var route = """";
| var dest=0;
| var R="""";
| for (var i=0; i<router"+ Номер +".getNumRoutes(); i++) {
| route = router"+ Номер +".getRoute(i);
| dest+=route.getDistance();
| R+=route.getDistance()+"";"";
| }
| var waypoint = """";
| var N="""";
| for (var i=0; i<router"+ Номер +".getNumWayPoints(); i++) {
| waipoint = router"+ Номер +".getWayPoint(i);
|N+=waipoint.text+"";"";
| }
|summaryPanel.innerHTML=""0;""+R+""/""+N+""/"";
|}); ";
КодHTML= КодHTML + "
| <DIV style=""BACKGROUND-COLOR: #ffee77; MARGIN: 20px; DISPLAY: none""
id=""directions_panel"+ Номер +"""></DIV> ";
КонецЦикла;
//спИспользованныхПунктов.Добавить(НомерПункта);
КонецЦикла;
КодХТМЛ = "
|<!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 type=""text/javascript"" src=""http://api-maps.yandex.ru/1.1/index.xml?key=" + APIКлюч +
93
"==&modules=traffic"" charset=""utf-8"">
| </script>
| <script type=""text/javascript"">
| YMaps.jQuery(
| function showAddress () {
| var map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]),
| traffic = new YMaps.Traffic.Control({
| showInfoSwitcher: true,
| infoLayerOptions: {
| cursor: YMaps.Cursor.HELP
| }
| }, {
| shown: true,
| infoLayerShown: true
| }
| );
|
| map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
| map.addControl(traffic);
| var toolBar = new YMaps.ToolBar();
| map.addControl(toolBar);
| map.addControl(new YMaps.Zoom());
| map.addControl(new YMaps.TypeControl());
| map.enableScrollZoom();
|
|" +
КодХТМЛ + "
| });
|
|
|
| </script>
|</head>
|
|<body>
| <div id=""YMapsID"" style=""width:800x;height:600px""></div>" +
КодHTML + "
|</body>
|
|</html>";
ЭлементыФормы.Карта.УстановитьТекст(КодХТМЛ);
ПодключитьОбработчикОжидания("ЗаписатьМаршрутВТЧ",1,Ложь);
Возврат Результат;
КонецФункции
Процедура АдресДоставкиНачалоВыбора(Элемент, СтандартнаяОбработка)
ФормаВыбора = РегистрыСведений.КонтактнаяИнформация.ПолучитьФормуСписка("ФормаСписка",
ЭтаФорма);
ФормаВыбора.РежимВыбора = Истина;
Если Метаданные.Имя = "УправлениеПроизводственнымПредприятием" Тогда
ФормаВыбора.мВозвратДанныхКонтактнойИнформации = Истина;
КонецЕсли;
ФормаВыбора.РегистрСведенийСписок.Отбор.Объект.Использование = Истина;
ФормаВыбора.РегистрСведенийСписок.Отбор.Объект.ВидСравнения = ВидСравнения.Равно;
ФормаВыбора.РегистрСведенийСписок.Отбор.Объект.Значение = Объект;
ФормаВыбора.РегистрСведенийСписок.Отбор.Тип.Использование = Истина;
94
ФормаВыбора.РегистрСведенийСписок.Отбор.Тип.ВидСравнения = ВидСравнения.Равно;
ФормаВыбора.РегистрСведенийСписок.Отбор.Тип.Значение =
Перечисления.ТипыКонтактнойИнформации.Адрес;
ФормаВыбора.ЭлементыФормы.РегистрСведенийСписок.Колонки.Тип.Видимость = Ложь;
Данные = ФормаВыбора.ОткрытьМодально();
Если Данные <> Неопределено Тогда
Если Метаданные.Имя = "УправлениеПроизводственнымПредприятием" Тогда
ПолныйАдрес = ПолучитьПолныйАдрес_(Данные);
Иначе
ПолныйАдрес = Данные;
КонецЕсли;
СтруктураАдреса = ПолучитьСтруктуруАдресаИзСтроки_(ПолныйАдрес);
АдресДоставки = ПолучитьПредставлениеАдресаПоСтруктуре_(СтруктураАдреса);
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
Если Не ЗначениеЗаполнено(APIКлюч) Тогда
APIКлюч = //Введите свой API ключ для доступа в Яндекс.Карты на странице Яндекс.Карты
API;
КонецЕсли;
//ПостроитьМаршрут();
стр = НаВходе.Добавить();
стр.Адрес = "Москва, Кантемировская ул, 22а";
стр = НаВходе.Добавить();
стр.Адрес = "Москва, Семеновская ул, 5";
стр = НаВходе.Добавить();
стр.Адрес = "Московская обл, Одинцово г, Северная ул, 2";
стр = НаВходе.Добавить();
стр.Адрес = "Московская обл, Мытищи г, Красноармейская ул, 3А";
стр = НаВходе.Добавить();
стр.Адрес = "Московская обл, Одинцово г, Маршала жукова ул, 1-а";
стр = НаВходе.Добавить();
стр.Адрес = "Московская обл, Красногорск, Советов ул, 54";
КонецПроцедуры
Процедура ЗаписатьМаршрутВТЧ()
ТекстСтраницы = "";
Номер = 0;
спИспользованныхПунктов=Новый СписокЗначений;
к=0;
//Для к = 0 по НаВходе.Количество()-1 Цикл
Новая.Очистить();
Пока спИспользованныхПунктов.Количество()<>НаВходе.Количество() Цикл
РастМин = 0;
Пункт2="";
НомерПункта=0;
95
Для п = 1 по НаВходе.Количество()-1 Цикл
Если НЕ (спИспользованныхПунктов.НайтиПоЗначению(п)=Неопределено) или п=к
Тогда
Продолжить
КонецЕсли;
НайденнаяСтрока=ТЗ.Найти(""+к+""+п+"","ОтАдоБ");
Номер=НайденнаяСтрока.Номер;
ТекстСтраницы = ЭлементыФормы.Карта.Документ.getElementByID("directions_panel"
+ Номер);
Если ТекстСтраницы.innerHTML <> "" Тогда
ОтключитьОбработчикОжидания("ЗаписатьМаршрутВТЧ");
ДанныеАдреса=ТекстСтраницы.innerHTML;
Строка = СтрЗаменить(ДанныеАдреса, "/", Символы.ПС);
Массив = Новый Массив;
Для НомерСтроки = 1 По СтрЧислоСтрок(Строка) Цикл
Массив.Добавить(СтрПолучитьСтроку(Строка, НомерСтроки));
КонецЦикла;
КонецЕсли;
Р = СтрЗаменить(Массив[0], ";", Символы.ПС);
Н = СтрЗаменить(Массив[1], ";", Символы.ПС);
Раст=0;
РазделАртикул = СтрЗаменить(Н, ",",Символы.ПС);
НомерАртикул = СтрПолучитьСтроку(РазделАртикул, 6);
РайонАртикул = СтрПолучитьСтроку(РазделАртикул, 3);
ДанныеАртикул = СокрЛП(РайонАртикул + НомерАртикул);
Для НомерСтроки = 1 По СтрЧислоСтрок(Р) Цикл
С=Новая.Добавить();
Ч=(СтрПолучитьСтроку(Р, НомерСтроки));
Ч=Число(Ч)/1000;
Раст=Раст+Окр(Ч);
Раст=Ч;
С.Артикул = ДанныеАртикул;
С.Расстояние=Раст;
С.Адрес =(СтрПолучитьСтроку(Н, НомерСтроки));
КонецЦикла;
//Новая.Свернуть("Артикул, Адрес, Расстояние");
Если Раст < РастМин или РастМин = 0 Тогда
РастМин = Раст;
Пункт2 = С.Адрес;
НомерПункта=п
КонецЕсли;
КонецЦикла;
Сообщить (Пункт2 + "----" + РастМин);
//спИспользованныхПунктов.Добавить(к);
Если НомерПункта>0 Тогда
спИспользованныхПунктов.Добавить(НомерПункта);
Иначе
//сообщить("Ошибка поиска");
Прервать;
КонецЕсли;
к=НомерПункта;
КонецЦикла;
//ЗаписьТекста = Новый ТекстовыйДокумент;
//Для Каждого Стр из Новая Цикл
// ЗаписьТекста.ДобавитьСтроку(Стр.Артикул + "---" + Стр.Адрес + "---" + Стр.Расстояние);
//КонецЦикла;
//ЗаписьТекста.Записать("C:\" + Стр.Артикул + ".txt", "windows-1251");
96
КонецПроцедуры
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПостроитьМаршрут();
КонецПроцедуры
<!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 name=viewport content="initial-scale=1.0, user-scalable=no"></META>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://api-
maps.yandex.ru/1.1/index.xml?key=ACfO8E0BAAAAs70VdQIA8ebHgBDmBd4Ys3FvUtq5t7LjAU4AAAAAAAAA
AADwd85Es0X8nq4nUAzlEm5Cv8_OYg==" type="text/javascript"></script>
<script type="text/javascript">
// Создает обработчик события window.onLoad
YMaps.jQuery(function () {
// Создает экземпляр карты и привязывает его к созданному контейнеру
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
// Устанавливает начальные параметры отображения карты: центр карты и коэффициент
масштабирования
map.setCenter(new YMaps.GeoPoint(41.965167, 45.039771), 10);
var toolBar = new YMaps.ToolBar();
map.addControl(toolBar);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.TypeControl());
map.enableScrollZoom();
var router = new YMaps.Router(
[//~~ТелоФункции~~], // Список точек
[0], // Здесь задаем индексы транзитных точек (точек, через которые мы хотим проехать без остановки) в
массиве points
{ viewAutoApply: true } // Эта опция позволяет автоматически выставлять центр и коэффициент
масштабирования карты
),
style = new YMaps.Style(); // Стиль для меток и линий маршрутизатора
style.lineStyle = new YMaps.LineStyle(); // Задаем стиль линии
style.lineStyle.strokeWidth = 5; // Ширина линии
style.lineStyle.strokeColor = '30405080'; // Цвет линии в формате RGBA
router.setStyle(style); // Применяем стиль к маршруту
map.addOverlay(router); // Добавляем маршрут на карту
// По событию успешного построения маршрута зададим подписи точкам маршрута
YMaps.Events.observe(router, router.Events.Success, function () {
// Задаем содержание меток для начальной и конечной точек.
// Транзитные точки на карте не отмечаются и не возвращаются методом getWayPoint
var summaryPanel = document.getElementById("directions_panel");
var route = "";
var dest=0;
var R="";
for (var i=0; i<router.getNumRoutes(); i++) {
route = router.getRoute(i);
dest+=route.getDistance();
R+=route.getDistance()+";";

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")