Спасибо за ответ!
На MapInfo я и не равняюсь. У меня его нет
Просто информация в Интернете есть именно для MapInfo, и я пытаюсь эту информацию применить к тому инструменту, которым пользуюсь. А фундаментальных знаний нет, чтобы самому понять
Что касается того, что ничего не изменилось - похоже, это не совсем так. В
этой статье даётся преобразование (опять-таки, для MapInfo) по ГОСТ Р 51794–2001, а в конце приведено дополнение, показывающее, как это должно выглядеть по ГОСТ Р 51794–2008. Вроде по-другому.
Ну, и насколько я понимаю, как раз нестандартный датум (через 9999) в MapInfo люди как раз вводят для того, чтобы преобразование было одно, по ГОСТ. Хотя здесь я, конечно, полный профан и могу ошибаться...
Цитата:
так как никто не просил
Теперь нашёлся один
Попробую скриптом, но если найдётся немного времени, добавьте, пожалуйста, из UI!
Спасибо.
Update: использую скрипт:
const eEllipsoidKrassovsky = 3
const eCoordTransformPositionVector7Parameter = 2
const eCoordTransformToWGS84 = 1
const eProjTransverseMercator = 4
Sub CK42ToWGS84_GOST51794_2008()
Set crs = CreateObject("ZuluLib.CRS")
crs.ProjectionType = eProjTransverseMercator
Set datum = crs.GetDatum()
Set ellipsoid = datum.GetEllipsoid()
ellipsoid.SetByCode eEllipsoidKrassovsky
MsgBox "ellipsoid Name: " & ellipsoid.Name & vbCrLf & "ellipsoid InverseFlattening: " & ellipsoid.InverseFlattening & vbCrLf & "ellipsoid SemiMajorAxis: " & ellipsoid.SemiMajorAxis & vbCrLf & "ellipsoid SemiMinorAxis: " & ellipsoid.SemiMinorAxis
With datum
.dX = 23.57
.dY = -140.95
.dZ = -79.8
.Rx = 0
.Ry = -0.35
.Rz = -0.79
.dS = -0.22
.TransformMethod = eCoordTransformPositionVector7Parameter
.TransformTo = eCoordTransformToWGS84
.SetEllipsoid ellipsoid
End With
crs.SetDatum datum
Set ellipsoid = crs.GetDatum().GetEllipsoid()
MsgBox "ellipsoid Name: " & ellipsoid.Name & vbCrLf & "ellipsoid InverseFlattening: " & ellipsoid.InverseFlattening & vbCrLf & "ellipsoid SemiMajorAxis: " & ellipsoid.SemiMajorAxis & vbCrLf & "ellipsoid SemiMinorAxis: " & ellipsoid.SemiMinorAxis
Set L = CreateObject("zululib.Layer")
L.Open "Path\to\my\layer.b00"
L.SetCRS crs
End Sub
Первый
MsgBox выдаёт имя эллипсоида "Krassovsky". А второй - "Custom" (и если запросить его код, вернёт -1). Хотя параметры эллипсоида в обоих случаях идентичные.
В структуре слоя ввести центральный меридиан, восточное и северное смещения нельзя, сразу сбивается датум. Пришлось указывать также скриптом.