Private Sub IsGEO(FoundBC As String) As Boolean
Dim raw As String = FoundBC
Dim res As clsResult
res.Initialize(0)
'FoundBC = "geo:50.847632,2.860613"
Dim m As Matcher = Regex.Matcher2("geo:([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?(.*))?",Regex.CASE_INSENSITIVE, raw)
If m.Find = False Then
Return False
End If
res.geoQuery = m.Group(4)
Try
res.geoLatitude = m.Group(1)
If res.geoLatitude > 90 OR res.geoLatitude < -90 Then
Return False
End If
res.geoLongitude = m.Group(2)
If res.geoLongitude > 180 OR res.geoLongitude < -180 Then
Return False
End If
If m.Group(3) <> "" Then
res.geoAltitude = m.Group(3)
If res.geoAltitude < 0 Then
Return False
End If
End If
res.geoURI = "geo:" & res.geoLatitude & "," & res.geoLongitude
If res.geoAltitude > 0 Then
res.geoURI = res.geoURI & "," & res.geoAltitude
End If
If res.geoQuery <> "" Then
res.geoURI = res.geoURI & "?" & res.geoQuery
End If
res.resType = res.TYPE_GEO
Return True
Catch
Return False
End Try
End Sub