CDistRamalInicioTrecho.cls
2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "CDistRamalInicioTrecho"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
' Calcula a distância entre o ponto inicial do trecho antes de ser movido e o ponto inicial da linha do ramal
'
' distancia - retorna a distância do início do ramal antes de mover até o iníco do trecho de rede antes de mover
' objIdTrecho - do trecho antes de mover
' objIdRamal - do ramal ates de mover
' teDatabaseConn - conexão com o banco de dados geográfico
'
Public Function Distancia(objIdTrecho As String, objIdRamal As String) As Double
', ByVal teDatabaseConn As TeDatabase
'Dim a As New CGeometria 'declaração do objeto como do tipo classe CGeometria e criação do mesmo (New) através de uma auto instância
On Error GoTo Trata_Erro:
Dim t As Integer
Dim qtdPontos As Integer
Dim ponto1 As New CPoint2D
Dim linha1 As New CLine2D 'linha original do trecho de rede
Dim linha2 As New CLine2D 'linha original do ramal, antes de mover, ligado ao trecho de rede
Dim coordInt2Linhas As New CDuasLinhas
Dim coordenadasLinha1 As New CCoordIniFinLinha 'coordenadas ao trecho de rede antes de mover
Dim coordenadasLinha2 As New CCoordIniFinLinha 'coordenadas do ramal de rede antes de mover
Dim distInicial As New CDistancia2Pontos
'obtem as coordenadas inicial e final do trecho
'coordenadasLinha1.conexao = teDatabaseConn
coordenadasLinha1.GetStartEndPointsTrecho (objIdTrecho)
Set linha1 = coordenadasLinha1.linha
'obtem as coordenadas inicial e final do ramal que está conectado ao trecho de rede
'coordenadasLinha2.conexao = teDatabaseConn
coordenadasLinha2.GetStartEndPointsRamal (objIdRamal)
Set linha2 = coordenadasLinha2.linha
Set coordInicialRamal = coordenadasLinha2.linha
coordInt2Linhas.Intersecao2Linhas linha1, linha2 'calcula a coordenada de interseção entre as linhas do ramal e do trecho de rede
Distancia = distInicial.Distancia2Pontos(linha1.xi, linha1.yi, coordInt2Linhas.X, coordInt2Linhas.Y) 'calcula a distância entre o ponto de interseção do ramal com o trecho de rede e o ponto inicial do trecho de rede
Exit Function
Trata_Erro:
If Err.Number = 0 Or Err.Number = 20 Then
Resume Next
Else
ErroUsuario.Registra "CDistRamalInicioTrecho", "Distancia", CStr(Err.Number), CStr(Err.Description) + " objIdTrecho: " + objIdTrecho + " objIdRamal: " + objIdRamal, True, glo.enviaEmails
End If
End Function