Разбирает текстовую запись широты и долготы и возвращает их объектом ZPoint.
Visual Basic:
Function GetLatLonFromString(sLat As String, sLon As String) As ZPoint
sLat - запись широты.
sLon - запись долготы.
Широта возвращается в свойстве X полученного объекта, долгота - в свойстве Y, обе в градусах.
Принимается как десятичная запись (55.7558), так и запись градусами, минутами и секундами с указанием полушария (59°46'18" с. ш. или 59°46'18" N). Обозначения градусов, минут и секунд обязательны: запись из одних чисел, разделенных пробелами, не разбирается. Отрицательное значение широты соответствует южному полушарию, долготы - западному.
Если параметр sLon пуст, обе координаты читаются из sLat: туда можно передать запись целиком, например 59°46'18" с. ш. 30°19'33" в. д.
Visual Basic:
Sub CRS_GetLatLonFromString Set crs = CreateObject("ZuluLib.CRS") 'Десятичная запись: широта и долгота по отдельности Set p1 = crs.GetLatLonFromString("55.7558", "37.6173") 'Градусы, минуты и секунды одной строкой: второй параметр пуст Set p2 = crs.GetLatLonFromString("59°46'18"" с. ш. 30°19'33"" в. д.", "") MsgBox "широта " & p1.X & ", долгота " & p1.Y & vbCrLf & _ "широта " & p2.X & ", долгота " & p2.Y End SubPython:
import zulu def Macro_CRS_GetLatLonFromString(): crs = zulu.CRS() # Десятичная запись: широта и долгота по отдельности p1 = crs.GetLatLonFromString("55.7558", "37.6173") # Градусы, минуты и секунды одной строкой: второй параметр пуст p2 = crs.GetLatLonFromString("59°46'18\" с. ш. 30°19'33\" в. д.", "") print("широта %s, долгота %s" % (p1.X, p1.Y)) print("широта %s, долгота %s" % (p2.X, p2.Y))