1С:Предприятие
:: 1С:Предприятие 7.7 и ранее
|
|
| ||
linoblack 09.09.16 - 17:02 | Если кому интересно, то сабж быстренько можно организовать вот так. Очень просто через апи гугл-карт. Без заморочек с активиксами, яваскриптами и сериализацией
Перем гXMLАнализатор; Процедура ПриОткрытии(); Если ЗагрузитьВнешнююКомпоненту("v7plus.dll") <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!"); СтатусВозврата(0); Возврат; КонецЕсли; гXMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); Если Число(гXMLАнализатор.ВерсияАнализатора) < 2 Тогда Предупреждение("Для работы с программой необходимо обновить внешнюю компоненту v7plus.dll !"); СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры Функция Геокод(Адрес) API_KEY = "тут ваш ключ"; СтрокаURL = СокрЛП(Адрес); Сервер = "maps.googleapis.com"; Страница = "/maps/api/geocode/xml?address="+СтрокаURL+"&key="+API_KEY; HTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); ЧтениеXML = гXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент(); ИмяОбъекта = ""; urlSend = Сервер + Страница; HTTP.Open("GET","https://"+urlSend,0); HTTP.Send(); ЧтениеXML.СвязатьСоСтрокой(HTTP.responseText); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Спуститься(); ИмяУзла = ЧтениеXML.СвойстваТекущегоУзла.Имя; Пока ИмяУзла<>"geometry" Цикл ТипТега = ЧтениеXML.Следующий(); ИмяУзла = ЧтениеXML.СвойстваТекущегоУзла.Имя; КонецЦикла; ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Спуститься(); Широта = ЧтениеXML.ТекущийЭлементВВидеСтроки(); Широта = Прав(Широта,СтрДлина(Широта)-5); Широта = Лев(Широта,СтрДлина(Широта)-6); ТипТега = ЧтениеXML.Следующий(); Долгота = ЧтениеXML.ТекущийЭлементВВидеСтроки(); Долгота = Прав(Долгота,СтрДлина(Долгота)-5); Долгота = Лев(Долгота,СтрДлина(Долгота)-6); Если ПустоеЗначение(Широта)=1 Тогда Широта =0 КонецЕсли; Если ПустоеЗначение(Долгота)=1 Тогда Долгота = 0 КонецЕсли; Рез = СоздатьОбъект("СписокЗначений"); Рез.ДобавитьЗначение(Широта,"Широта"); Рез.ДобавитьЗначение(Долгота,"Долгота"); Возврат (Рез); КонецФункции Функция Расстояние(Адрес1,Адрес2) API_KEY = "тут ваш ключ"; Сервер = "maps.googleapis.com"; Страница = "/maps/api/distancematrix/xml?origins="+СокрЛП(Адрес1)+"&destinations="+СокрЛП(Адрес2)+"&key="+API_KEY; HTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); ЧтениеXML = гXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент(); ИмяОбъекта = ""; urlSend = Сервер + Страница; HTTP.Open("GET","https://"+urlSend,0); HTTP.Send(); ЧтениеXML.СвязатьСоСтрокой(HTTP.responseText); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Спуститься(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Следующий(); ТипТега = ЧтениеXML.Спуститься(); Расстояние = ЧтениеXML.ТекущийЭлементВВидеСтроки(); Расстояние = Прав(Расстояние,СтрДлина(Расстояние)-7); Расстояние = Лев(Расстояние,СтрДлина(Расстояние)-8); Возврат(Расстояние); КонецФункции Процедура Сформировать() Рез = Геокод(ВыбАдрес); Широта = Рез.ПолучитьЗначение(1); Долгота = Рез.ПолучитьЗначение(2); сообщить(Широта); сообщить(Долгота); Расстояние = Расстояние(ВыбАдрес,ВыбАдрес2); сообщить(Расстояние); КонецПроцедуры | ||
Смотрящий 1 - 09.09.16 - 17:08 | Поглядим, спс | ||
oleg_km 2 - 09.09.16 - 18:24 | Семерошник? | ||
linoblack 3 - 10.09.16 - 12:31 | (2) ну да, это ж ветка такая )) |
|
Список тем форума
|