Работа с google maps из terrasoft

Здравствуйте!

Для упрощения изложения сути вопроса возьму за основу раздел "Контрагенты" с его деталью "Web". Итак, что делаем:
1. Переходим в раздел "Контрагенты";
2. Выбираем из реестра запись с адекватным адресом;
2. Выбираем деталь "Web";
3. Указываем в поле с выпадающим списком "Источник Web".

Какой результат видим?

Загрузилась карта сервиса google maps с маркером установленным на адресе контрагента.

А теперь внимание вопрос)))!!!

Можно-ли сделать так, чтобы загружаемая карта содержала два и более маркеров, по которым можно было бы построить маршрут?

Если да, то хотелось бы увидеть пример кода. Если нет, то хотелось бы узнать причину по которой это не возможно!

Нравится

10 комментариев

Интеграция детали "Веб" с картами устроена довольно просто: берётся текст из поля "адрес" контрагента и вызывается поиск в Google Maps по этому адресу. И только. Маркер - результат этого поиска, изредка не вполне адекватный.

Если запросить вроде "from Sankt-Peterburg to Moscow", оно как раз нарисует маршрут. Для более 2 точек можно вводить в формате "from:первый_адрес to:второй_адрес to:третий_адрес"

В каких полях таблицы контрагента находятся адреса начала и конца маршрута?

Спасибо, Александр!

По указному вами запросу открылась карта с большим количеством маркеров и маршрута там нет. Логика например такая:
Щелчек по контрагенту в реестре устанавливает маркера "А"(start) на адрес записи "Ваша компания", а маркер "B"(end) на адрес выделенной в реестре компании. (Плюс к этому показывается маршрут.) Кстати я знаю как через URL построить такой маршрут)))
http://maps.google.com/maps?saddr={start_address}&daddr={destination_address}
Но вот что делать если надо 3-и маркера и их надо связать между собой маршрутами в определенной последовательности?
Запрос типа http://maps.google.com/maps?saddr={start_address}&daddr={destination_address}&daddr={destination_address} для 3-х меток не работает.

То, что надо)))
Спасибо, Александр!

Не подскажете можно-ли вернуть данные о маршруте из ActiveXControl?

А с формированием url по адресам уже получилось?

Не уверен, что как-то можно вернуть оттуда данные, это же ActiveX браузера, а не Google Maps.

Теоретически можно работать программой с Google Earth через ActiveX, но это требует отдельного исследования.

Да. С Url все вышло. Маршрут строится даже с указанием номера дома.)) Тем не менее предполагается, что данные о маршруте надо где-то сохранять, поэтому у меня две мысли по этому поводу.
1. Использование свойств и методов ActiveX для получения данных о результатах построения маршрута (не знаю с какими подводными камнями столкнусь!);
2. Использование статической локальной странички с кнопкой для отправки данных о маршруте в terrasoft.

Работать по ActiveX можно с Google Earth. Устанавливаем на компьютер эту программу, а дальше смотрим и используем её методы. Например, так он переходит к точке по координатам:

var axGE = new ActiveXObject('googleearth.applicationge.1');
while (!axGE.IsInitialized()) {
	System.Sleep(100);			
}		
try {
	axGE.SetCameraParams (50.433, 30.521, 150, 1, 1000, 0, 0, 0.1);
} catch(e) {
	Log.Write(2, e.message);
}

Там много и других свойств и методов: поиск, запоминание позиции камеры и т.д.

Александр, Google Earth это Plug-in? Не подскажете где ее "взять"?

И где можно более детально по этой теме узнать?

Это программа. Взять на их сайте.
Google Earth
Узнать можно на примерах на других языках, вроде этого или глядя на свойства и методы объекта в Visual Studio.
Но разработчики больше не хотят поддерживать это API, рекомендуют API для сайтов, которое я не знаю, как подружить с TS.

Показать все комментарии