Трансляция координат ГауссКрюгер->Пулково42 в MapBasic

MapInfo, MapBasic
Ответить
Vitaly Bogomolov
Новоприбывший
Сообщения: 2
Зарегистрирован: 13 июл 2004, 12:39
Репутация: 0
Откуда: Саратов

Трансляция координат ГауссКрюгер->Пулково42 в MapBasic

Сообщение Vitaly Bogomolov » 13 июл 2004, 13:03

Дано:
9 зона ГК. Координаты точки 9327220.89, 5556686.44 в метрах.

После ручных манипуляций в MapInfo: открыть таблицу в проекции ГК-9, "сохранить как" с проекцией Пу42
преобразованные координаты точки равны 48.584184000, 50.116388000 в градусах. OK.

Пытаемся проделать эту процедуру в окне MapBasic:

'создаем временную таблицу
Create Table temp (ID Integer)

'создаем колонку obj в проекции ГК-9зона
Create Map For temp CoordSys Earth Projection 8, 1001, "m", 51, 0, 1, 9500000, 0

'отказываемся от транзакций
Set Table temp FastEdit On

'пишем во временную таблицу обьект с нужными координатами
Insert Into temp (ID, obj) Values (1, CreatePoint(9327220.89, 5556686.44))

'переходим на первую (и единственную) строку временной таблицы
Fetch First From temp

'выводим записанные координаты
print CentroidX(temp.obj)
print CentroidY(temp.obj)
'получаем 32500000, -10002137.5 ???

'сохраняем в другую временную таблицу с проекцией Пу-42
Commit Table temp As "temp1" CoordSys Earth Projection 1, 1001

'открываем эту таблицу
Open Table "temp1"

'переходим на первую (и единственную) строку
Fetch First From temp1

'выводим записанные координаты
print CentroidX(temp1.obj)
print CentroidY(temp1.obj)
'получаем 32500000, -10002137.5 ???

Что я делаю не так?
Vitaly

Vitaly Bogomolov
Новоприбывший
Сообщения: 2
Зарегистрирован: 13 июл 2004, 12:39
Репутация: 0
Откуда: Саратов

Re: Трансляция координат ГауссКрюгер->Пулково42 в MapBasi

Сообщение Vitaly Bogomolov » 15 июл 2004, 07:04

Разобрался с проблемой:

>Дано:
>9 зона ГК. Координаты точки 9327220.89, 5556686.44 в метрах.

>После ручных манипуляций в MapInfo: открыть таблицу в проекции >ГК-9, "сохранить как" с проекцией Пу42
>преобразованные координаты точки равны 48.584184000, >50.116388000 в градусах. OK.

[skip]

>'создаем колонку obj в проекции ГК-9зона
>Create Map For temp CoordSys Earth Projection 8, 1001, "m", 51, 0, 1, >9500000, 0

вот здесь надо включить сисему координат созданной таблицы, иначе
CreatePoint интерпретирует аргументы как градусы системы координат по умолчанию:

Set CoordSys Table temp

>'пишем во временную таблицу обьект с нужными координатами
>Insert Into temp (ID, obj) Values (1, CreatePoint(9327220.89, >5556686.44))

>'переходим на первую (и единственную) строку временной таблицы
>Fetch First From temp

переключаемся на Пулково42:

Set CoordSys Earth Projection 1, 1001

'выводим записанные координаты
print CentroidX(temp.obj)
print CentroidY(temp.obj)
'получаем 48.584184000,50.116388000 в градусах
Vitaly

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей