Distancia entre bai...
 
Notifications
Clear all

Distancia entre bairros

59 Posts
3 Usuários
0 Reactions
12.5 K Visualizações
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Bom dia amigos, tenho pesquisado mas esta dificil, no meu form, tenho dois controles um com bairro de coleta e o outro com bairro de entrega, gostaria que o meu sisteminha calculasse a distancia entre os bairros mas nao tenho a menor ideia de como fazer isso, é muito complicado? a ideia e a mesma do google mapas.

Qualquer ideia sera bem vinda, muito obrigado.

Fabio Pradella

 
Postado : 08/05/2012 9:09 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Ta, mas como ficaria a rotina?

Me.tbPartida.Text = frmCadastroServiçosConvenio.TxtEnderecoColeta.Text ???

 
Postado : 14/05/2012 9:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

tbPartida.Text = frmCadastroServiçosConvenio.TxtEnderecoColeta.Text & ", " & TxtNColeta.text

 
Postado : 14/05/2012 9:08 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Me ensinou mais uma, nunca tinha usado o &, perdoe a ignorancia, hehehe

Agora ficou show, ate porque tem ruas que cruzam dois ou tres bairros, ai o numero vai indicar o bairro automaticamente.

Um dia quem sabe ficarei mestre como vcs, hehehe,

A unica coisa que estou tentando entender ainda se é possivel, é quando ele retorna a kilometragem dentro da lbl, ele retorna como esta escrito no google, " 13,2km ", estou tentando entender na rotina se é possivel retornar so o numero " 13,2 ".

Mais uma vez meu muito obrigado Reinaldo, so neste topico aprendi muito com vc como ja aprendi muito com o Mauro tambem, show de forum.

Fabio Pradella

 
Postado : 14/05/2012 9:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se sempre retorna os dois ultimos carcteres como "km" vc pode tentar left(lblkm,len(lblkm-2))

 
Postado : 14/05/2012 9:39 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Reinaldo, na rotina anterior deu "variavel nao definada"

tbPartida.Text = frmCadastroServiçosConvenio.TxtEnderecoColeta.Text & ", " & TxtNColeta.text

 
Postado : 14/05/2012 9:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se o TxtNColeta existe, dve estar tb no formulario; então de o caminho como um todo:
frmCadastroServiçosConvenio.TxtEnderecoColeta.Text & ", " & frmCadastroServiçosConvenio.TxtNColeta.text

 
Postado : 14/05/2012 10:15 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Reinaldo,

um grande abraço e obrigado pela paciencia.

 
Postado : 14/05/2012 10:27 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Boa tarde Reinaldo,

Entao, conforme as nossas implantaçoes recentes, usando aquele form indicado por vc, o programa, pega o bairro do comando A e do comando B e no comando C me da a distancia (Km).
Agora,eu precisaria de uma rotina que peguasse este valor do comando C e fosse procurar dentro de uma planilha, ex: " planilha valores entre bairros "
onde me dara os seguintes parametros:

de 0 a 5km, R$ 10,00
de 6 a 10km, R$ 15,00
de 11 a 15km, R$ 20,00.

e retornasse o valor R$ ???? em um comando D.

Muito dificil mestre Reinaldo?

Fabio Pradella

 
Postado : 16/05/2012 11:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Essa tabela esta na planilha? E possivel utilizar o application.match e procurar lá. Se for apenas as tres variações tb e possivel utilizar um "If"

 
Postado : 16/05/2012 12:03 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

esta planilha eu tenho que criar, posso criar dentro do banco de dados ou uma planilha ali no programa mesmo, na verdade são 8 variações, o if que eu tinha pensado mas meus conhecimentos são bem restritos ainda, tem um limite de 3, é isso?
Ja sobre o application.matatch, vou pesquisar para ver se consiguo montar a função, se vc tiver algum artigo ai ou indicaçao, agradeço.
Reinaldo, aqui entra aquela pergunta que eu te fiz ontem sobre tirar o Km quando ele me retorna a distacia do google maps, sou sincero a dizer que nao entendi aonde nem como usar a tua indicação, mas acabei ficando com vergonha de perguntar, usando o applicatio.match, o tal Km, ex: 10,1Km pode atrapalhar?

Obrigado mais uma vez Reinaldo.

 
Postado : 16/05/2012 12:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que me lembro vc incluiu uma linha =/- assim:> frmCadastroServiçosConvenio.TxtKm.Text = strKm; nessa linha use a formula; ficaria assim
frmCadastroServiçosConvenio.TxtKm.Text = left(lblkm,len(lblkm-2)).
O uso de IF's em VB é mais flexivel do que na planilha. Vc pode fazer no codigo sim
Quanto ao uso da função, e como a sintaxe da função Corresp(Valor Procurado,MatrizaProcurar,tipoCorresp) veja um exemplo: http://support.microsoft.com/default.aspx?kbid=213643

 
Postado : 16/05/2012 5:19 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Grande Reinaldo, como estou com aquele problema para abrir o projeto em casa, amanha cedo farei o que vc esta me explicando e te dou um feedback.

Obrigado mais uma vez Reinaldo

 
Postado : 16/05/2012 6:37 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Bom dia Reinaldo,

Ficou assim,

frmCadastroServiçosConvenio.TxtKm.Text = Left(lblDistância, Len(lblDistância - 2))

declarei a variavel assim:

dim lbldistância as object,

Mas da erro de:

A variavel do object ou do bloco wich nao foi definida

 
Postado : 17/05/2012 6:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vc já não tinha essa variavel antes? A mesma não é objeto mas sim string (veja no form original a variavel é strKm (as string)).

 
Postado : 17/05/2012 6:59 am
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Reinaldo, eu tentei com esta variável mas da erro também,

"A variável e obrigatória - não e possível atribuir a esta expressão", por isso tentei com a lbldistância, achei que tava certo, mas se coloco ela como string da a mesma mensagem ai de cima,

Sub fnPesquisarDistânciasETemposNoGoogleMaps( _
ByVal strEndereçoDePartida As String, _
ByVal strEndereçoDeChegada As String)
''' [email protected]: 2007-10-28
''' [email protected]: 2012-04-14 Rev.01
Dim oKm As Object
Dim oTempo As Object
Dim oAll As Object
Dim oDIV As Object
Dim strRoteiro As String
Dim strKm As String
Dim strTempo As String
Dim aRoteiro() As String
Dim intItem As Integer
Dim objDIV_TravelMode As MSHTML.HTMLDivElement
Dim strTitle As String
Dim objA As MSHTML.HTMLAnchorElement
Dim objLI As MSHTML.HTMLLIElement
Dim lblDistância As String

If IE Is Nothing Then
Set IE = GetObject("", "InternetExplorer.Application.1")
End If
If IE Is Nothing Then
Set IE = CreateObject("InternetExplorer.Application")
End If

Call ShowWindow(IE.hwnd, SW_SHOWMINNOACTIVE)

IE.Visible = True
IE.Top = 0
IE.Left = 0
IE.Width = GetSystemMetrics(SM_CXFULLSCREEN)
IE.Height = GetSystemMetrics(SM_CYFULLSCREEN)
ieHwnd = IE.hwnd
IE.PutProperty "tagExcelBr", 1
frmPesquisarGoogleMaps.lblMsg = "Navegando para GoogleMaps..."
IE.Navigate2 " http://maps.google.com.br/maps?f=pt-BR,Curitiba&geocode"

While IE.Busy: DoEvents: Wend
Do While IE.Document.ReadyState <> "complete": DoEvents: Loop
frmPesquisarGoogleMaps.lblMsg = "Capturando os dados..."
With frmPesquisarGoogleMaps
IE.Document.all("d_d").Value = strEndereçoDePartida
IE.Document.all("d_daddr").Value = strEndereçoDeChegada
IE.Document.all("d_sub").Click

While IE.Busy: DoEvents: Wend
Do While IE.Document.ReadyState <> "complete": DoEvents: Loop
Do While IE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
lblDocumentAll:
For Each oDIV In IE.Document.all.tags("DIV")
If InStr(oDIV.className, "dir_warnbox_msg") > 0 Then
frmPesquisarGoogleMaps.lblMsg = "Falha: partida ou destino não localizados"
GoTo lblSair
End If
Next
.lblPartidaRetornado = IE.Document.all("ddw_addr_area_0").outerText
.lblChegadaRetornado = IE.Document.all("ddw_addr_area_1").outerText
aRoteiro = Split(IE.Document.all("ddr0").outerText, Chr(13))
Set oAll = IE.Document.getElementsByTagName("B")
For Each oKm In oAll
If InStr(oKm.outerText, "") > 0 Then
strKm = oKm.outerText
Exit For
End If
Next
For Each oTempo In oAll
If InStr(oTempo.outerText, " minuto") > 0 Then
strTempo = oTempo.outerText
Exit For
End If
Next
Set objDIV_TravelMode = IE.Document.GetElementByID("travel_modes_div")
Set objA = objDIV_TravelMode.FirstChild.NextSibling
objA.FireEvent ("onClick")
Set objLI = IE.Document.GetElementByID("altroute_0")
strKm = objLI.getElementsByTagName("span")(0).outerText
strTempo = objLI.getElementsByTagName("span")(1).outerText
strRoteiro = objLI.getElementsByTagName("div")(2).outerText
strTitle = objA.Title

'.lblFormaDeDeslocamento = strTitle
.lblDistância = strKm
.lblTempo = strTempo
.lblRoteiro = strRoteiro

If UBound(aRoteiro) > 0 Then
For intItem = LBound(aRoteiro) To UBound(aRoteiro)
If Len(Trim(aRoteiro(intItem))) > 1 Then
If intItem = 0 Then
.lstRoteiro.AddItem Trim(Right(aRoteiro(intItem), Len(aRoteiro(intItem))))
Else
.lstRoteiro.AddItem Trim(Right(aRoteiro(intItem), Len(aRoteiro(intItem)) - 1))
End If
End If

Next
End If
End With
lblSair:

'frmCadastroServiçosConvenio.TxtKm.Text = strKm
frmCadastroServiçosConvenio.TxtKm.Text = Left(strKm, Len(strKm - 2))
Exit Sub
End Sub

 
Postado : 17/05/2012 9:42 am
Página 2 / 4