Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расчет расстояния, Расчет расстояния от точки A до B 
:(
    Опции темы
SniperWars
  Дата 30.5.2014, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.5.2012

Репутация: нет
Всего: нет



Вообщем захотелось реализовать расчет расстояния по такому принципу:Ссылка
Может сталкивался кто с реализацией такой задачи
Будет отдельная таблица с Городами(которая будет хранить название города и координаты(если будет расчет расстояния по координатам)
Может кто через API матрицы расстояний Google делал?
Просто если считать через формулу то не очень точно(У меня от расстояние идет подсчет расход топлива)

Это сообщение отредактировал(а) SniperWars - 30.5.2014, 00:28
PM MAIL   Вверх
SniperWars
Дата 31.5.2014, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.5.2012

Репутация: нет
Всего: нет



Неужели не кто не сталкивался хотя бы с похожей ситуацией? 
PM MAIL   Вверх
_Y_
Дата 1.6.2014, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Цитата(SniperWars @  31.5.2014,  21:41 Найти цитируемый пост)
Неужели не кто не сталкивался

Я вот тоже сижу здесь и грущу. Похоже, почти никто уже не сталкивается с VB smile 



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
alex77755
Дата 3.6.2014, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Есть реализация в VBA ексель

PM MAIL   Вверх
alex77755
Дата 3.6.2014, 07:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Ну, примерно, можно так:

Код

Private Sub Комманда3_Click()

S = Split(Текст1)
X10 = CDbl(S(0)) + CDbl(S(1)) / 60 + CDbl(S(2)) / 3600
X1 = Replace(X10, ",", ".")
S = Split(Текст2)
Y10 = CDbl(S(0)) + CDbl(S(1)) / 60 + CDbl(S(2)) / 3600
Y1 = Replace(Y10, ",", ".")
S = Split(Текст3)
X20 = CDbl(S(0)) + CDbl(S(1)) / 60 + CDbl(S(2)) / 3600
X2 = Replace(X20, ",", ".")
S = Split(Текст4)
Y20 = CDbl(S(0)) + CDbl(S(1)) / 60 + CDbl(S(2)) / 3600
Y2 = Replace(Y20, ",", ".")

SS = "https://maps.google.com/maps?saddr="
SS = SS & X1
SS = SS & "," & Y1
SS = SS & "&daddr="
SS = SS & X2
SS = SS & "," & Y2
SS = SS & "&z=16"

Текст5 = SS'ссылка на маршрут

  origin = CStr(Replace(X10, ",", ".")) & "," & CStr(Replace(Y10, ",", "."))
  destination = CStr(Replace(X20, ",", ".")) & "," & CStr(Replace(Y20, ",", "."))
 URL = "http://maps.googleapis.com/maps/api/directions/xml?origin=" & origin & "&destination=" & destination & "&sensor=false"
'            https://maps.google.com/maps?saddr=57.7800222222222,40.9364277777778&daddr=48.5321333333333,35.8881416666667&z=16

TT = GetHTTPResponse(URL)
S = Split(TT, "</distance>")
Текст7 = Split(Split(S(UBound(S) - 1), "<text>")(2), "</text>")(0) ' расстояние
End Sub


Function GetHTTPResponse(ByVal sURL As String) As String
Dim oXMLHTTP
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
   oXMLHTTP.SetRequestHeader "user-agent", "User-Agent: Opera/16.0' (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0"
     With oXMLHTTP
         .Open "GET", sURL, False
        .Send
         GetHTTPResponse = .ResponseText
     End With
     Set oXMLHTTP = Nothing
End Function

PM MAIL   Вверх
alex77755
Дата 3.6.2014, 07:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Там, конечно много лишнего и не оптимально.
В ТТ весь маршрут имеется. Можно вытащить всё.
Split тоже не оптимальный вариант доставания значений.
PM MAIL   Вверх
SniperWars
Дата 8.6.2014, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.5.2012

Репутация: нет
Всего: нет



Может кто использовал формулу для точного подсчета расстояния по координатам?
PM MAIL   Вверх
Cheloveck
Дата 9.6.2014, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(SniperWars @  8.6.2014,  23:19 Найти цитируемый пост)
формулу для точного подсчета расстояния по координатам? 

Расстояние -- это прямая линия между двумя точками и для твоей задачи она бесполезна. Тебе же нужна длина путь, для расчёта которой начала и конца мало. Нужен, как минмиум, граф дорог. В идеале ещё матрица высот.

Добавлено через 2 минуты и 25 секунд
Поэтому лучше всего сделать запрос к одному из картографических сервисов (гугл, яндекс и пр.), как предложилalex77755


--------------------
user posted image
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1256 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.