[/
Sub Class_Globals
Private Spa As Spatialite_Database
Dim PI As Double = 3.1415926535897932385
Dim RADIAN As Double = 2.0 * PI / 360
Dim Local_srid As String
'Dim Data_File As String
Dim spconstants As Spatialite_Constants
' Initialize(File.DirRootExternal & "/CEASER/Data/" ,Data_File,"READONLY")
' Spa.Open(File.DirInternal, "mm.sqlite", spconstants.SQLITE_OPEN_READONLY)
End Sub
Public Sub Initialize '(DPATH As String ,DBASE As String , OPEN_STYLE As String)
Dim DPath, DBase, Open_Style As String
DPath=File.DirRootExternal & "/CEASER/Data"
DBase="Projections"
Open_Style="ReadOnly"
Spa.Open(File.DirRootExternal, "EPSG.sl3", spconstants.SQLITE_OPEN_READONLY)
Spa.Initialize
Select Open_Style
Case "READWRITE"
Spa.Open(DPath, DBase, spconstants.SQLITE_OPEN_READWRITE)
Case "READONLY"
Spa.Open(DPath, DBase, spconstants.SQLITE_OPEN_READONLY)
End Select
End Sub
Sub get_point_from_local( x As Double , y As Double) As String
Dim sqStm As Spatialite_TableResult
Dim result As String
Dim sql1 As String
sql1 = "SELECT ST_AsText(ST_Transform(ST_GeomFromText('POINT("
sql1 = sql1 & x & " " & y & ")'," & Local_srid & "),4326)) As trans_geom; "
Try
sqStm = Spa.GetTable(sql1)
result = sqStm.Rows(0,0)
Catch
Log(LastException.Message)
MsgboxAsync(LastException.Message & CRLF & "wrong EPSG code" ,"ATTENTION")
Local_srid="2100"
Return "0000000000000000000"
End Try
If result=Null Or result="" Then
Return "0000000000000000000"
End If
Return result
End Sub
'''transform lat lon to local
Sub get_point_to_Local( lat As Double , lon As Double) As String
Dim sqStm As Spatialite_TableResult
Dim result As String
Dim sql1 As String
sql1 = "SELECT ST_AsText(ST_Transform(ST_GeomFromText('POINT("
sql1 = sql1 & lon & " " & lat & ")',4326),"
sql1 = sql1 & Local_srid & ")) As trans_geom;"
sqStm = Spa.GetTable(sql1)
result = sqStm.Rows(0,0)
Return result
End Sub
]