Пытаюсь преобразовать координаты между системами.
const eEllipsoidKrassovsky = 3
const eCoordTransformPositionVector7Parameter = 2
const eCoordTransformToPZ90 = 3
const eProjTransverseMercator = 4
Function CK42CRS(Lon0, FE, FN)
Set crs = CreateObject("ZuluLib.CRS")
Set datum = crs.GetDatum()
Set ellipsoid = datum.GetEllipsoid()
ellipsoid.SetByCode eEllipsoidKrassovsky
With datum
.dX = 25.0
.dY = -141
.dZ = -80.0
.Rx = 0
.Ry = -0.35
.Rz = -0.66
.dS = 0
.TransformMethod = eCoordTransformPositionVector7Parameter
.TransformTo = eCoordTransformToPZ90
.SetEllipsoid ellipsoid
End With
crs.SetDatum datum
crs.ProjectionType = eProjTransverseMercator
crs.Lon0 = Lon0
crs.FE = FE
crs.FN = FN
Set CK42CRS = crs
End Function
Set CRS1 = CK42CRS(136.71666666666666666666666666667, 3300000, -4916586.44)
X1 = 466789.297151777719 : Y1 = 3184459.28832338052
Set CRS2 = CK42CRS(135.0, 0, 0)
Set pt2 = CRS1.GetConvertPoint(X1, Y1, CRS2)
В результате pt2 в точности равна X1, Y1. А центральный меридиан и смещения другие.
Ничего не понимаю. Может быть, я где-то забыл указать, что координаты в метрах, а не в градусах? Но не пойму как.
const eEllipsoidKrassovsky = 3
const eCoordTransformPositionVector7Parameter = 2
const eCoordTransformToPZ90 = 3
const eProjTransverseMercator = 4
Function CK42CRS(Lon0, FE, FN)
Set crs = CreateObject("ZuluLib.CRS")
Set datum = crs.GetDatum()
Set ellipsoid = datum.GetEllipsoid()
ellipsoid.SetByCode eEllipsoidKrassovsky
With datum
.dX = 25.0
.dY = -141
.dZ = -80.0
.Rx = 0
.Ry = -0.35
.Rz = -0.66
.dS = 0
.TransformMethod = eCoordTransformPositionVector7Parameter
.TransformTo = eCoordTransformToPZ90
.SetEllipsoid ellipsoid
End With
crs.SetDatum datum
crs.ProjectionType = eProjTransverseMercator
crs.Lon0 = Lon0
crs.FE = FE
crs.FN = FN
Set CK42CRS = crs
End Function
Set CRS1 = CK42CRS(136.71666666666666666666666666667, 3300000, -4916586.44)
X1 = 466789.297151777719 : Y1 = 3184459.28832338052
Set CRS2 = CK42CRS(135.0, 0, 0)
Set pt2 = CRS1.GetConvertPoint(X1, Y1, CRS2)
В результате pt2 в точности равна X1, Y1. А центральный меридиан и смещения другие.
Ничего не понимаю. Может быть, я где-то забыл указать, что координаты в метрах, а не в градусах? Но не пойму как.