Записать в столбец координаты начал и концов отрезков

MapInfo, MapBasic
Ответить
xar4enkkoff
Активный участник
Сообщения: 107
Зарегистрирован: 17 янв 2010, 00:07
Репутация: 5
Откуда: Курск

Записать в столбец координаты начал и концов отрезков

Сообщение xar4enkkoff » 27 мар 2014, 00:53

Здравствуйте! Есть слой, состоящий только из отрезков. Т.е. в слое исключительно прямые линии между двух точек.
Насколько я понимаю, существует некое направление обхода. Т.е. программа точно знает, какая из двух точек - начало, а какая - конец. По крайней мере в свойствах объекта она четко показывает X1,X2,Y1,Y2.

Как заполнить пустой столбец в таблице, например, координатой X2? Функций, ответственных за координаты (исключая центроид), в выражениях вроде бы нет.

trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Записать в столбец координаты начал и концов отрезков

Сообщение trir » 27 мар 2014, 03:51


gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Записать в столбец координаты начал и концов отрезков

Сообщение gamm » 27 мар 2014, 04:15

xar4enkkoff писал(а):Функций, ответственных за координаты (исключая центроид), в выражениях вроде бы нет.
смотрите руководство по Мапвасику, там все есть. Извлекаются данные из объекта функцией

ObjectInfo(obj, КЛЮЧ_ЧЕГО_ДОСТАТЬ)

описание ключиков смотрите в доках или в def-файле васика, начинаются они OBJ_INFO_, смысл обычно ясен из названия типа OBJ_INFO_TYPE и OBJ_INFO_NPOLYGON, достать из объекта можно все :D

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

Re: Записать в столбец координаты начал и концов отрезков

Сообщение Slinger » 27 мар 2014, 08:51

ObjectGeography (obj, аргумент)

Аргументы: OBJ_GEO_LINEBEGX, OBJ_GEO_LINEBEGY, OBJ_GEO_LINEENDX, OBJ_GEO_LINEENDY.

Соответственно начальный X, начальный Y, конечный X, конечный Y. Только для объектов типа line.

xar4enkkoff
Активный участник
Сообщения: 107
Зарегистрирован: 17 янв 2010, 00:07
Репутация: 5
Откуда: Курск

Re: Записать в столбец координаты начал и концов отрезков

Сообщение xar4enkkoff » 27 мар 2014, 19:01

Выходит.
Только почему-то выдает координаты в градусах.
Хотя у исходной таблицы UTM 37 зона - метрическая.
Пробовал даже так делать вначале:

Код: Выделить всё

set coordsys Earth Projection 8, 104, "m", 39, 0, 0.9996, 500000, 0
Это как раз UTM 37 зона.

И так тоже пробовал:

Код: Выделить всё

set coordsys table my_tab
.
Все в градусах и в градусах, никак не хочет в метрах

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Записать в столбец координаты начал и концов отрезков

Сообщение gamm » 27 мар 2014, 19:40

xar4enkkoff писал(а):Все в градусах и в градусах, никак не хочет в метрах
в Мапинфе с этим всегда были проблемы, по крайней мере раньше ... помогало сделать workspace, в котором явно прописать проекцию, сохранить его, выйти, войти и загрузить (workspace - это программа на васике, в которой, в частности, будет команда установки проекции); еще в общих настройках (там, где список панелей и пр.) установить нужную проекцию по умолчанию. Шаманство, однако ...

xar4enkkoff
Активный участник
Сообщения: 107
Зарегистрирован: 17 янв 2010, 00:07
Репутация: 5
Откуда: Курск

Re: Записать в столбец координаты начал и концов отрезков

Сообщение xar4enkkoff » 27 мар 2014, 19:58

Сработало. Видимо workspace - не принципиален. Главное - установка нужной системы по умолчанию в настройках. Хотя утверждать не буду - я сначала набор создал все-таки:)

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Записать в столбец координаты начал и концов отрезков

Сообщение dab » 28 мар 2014, 07:15

Перед получением координат через функции типа ObjectGeography() выполните явную установку системы координат

Код: Выделить всё

Run Command "Set " + TableInfo("название-вашей-таблицы", TAB_INFO_COORDSYS_CLAUSE)
Это более универсальный подход.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Записать в столбец координаты начал и концов отрезков

Сообщение Boris » 28 мар 2014, 15:48

dab писал(а):Перед получением координат через функции типа ObjectGeography() выполните явную установку системы координат

Код: Выделить всё

Run Command "Set " + TableInfo("название-вашей-таблицы", TAB_INFO_COORDSYS_CLAUSE)
Это более универсальный подход.
но ведь автор привел то же самое 3 постами выше. меня это от совета остановило. Я чего то не понял или не заметил в его действиях?

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Записать в столбец координаты начал и концов отрезков

Сообщение Boris » 28 мар 2014, 15:51

trir писал(а):STEndpoint.STX
и правда не по теме. автор, давайте удалим?

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Записать в столбец координаты начал и концов отрезков

Сообщение dab » 28 мар 2014, 16:07

Boris писал(а):но ведь автор привел то же самое 3 постами выше. меня это от совета остановило. Я чего то не понял или не заметил в его действиях?
Я так понял ситуацию:
1. речь идёт о проблеме в контексте выполнения кода mapbasic, а не об интерактивном режиме mapinfo
2.
xar4enkkoff писал(а): Пробовал даже так делать вначале:

Код: Выделить всё

set coordsys Earth Projection 8, 104, "m", 39, 0, 0.9996, 500000, 0
Да, по сути мой пост совпадает с этим, но я решил уточнить момент установки параметра CoordSys и то, что TableInfo("название-вашей-таблицы", TAB_INFO_COORDSYS_CLAUSE) более универсальный подход, хотя бы из-за возможно пропущенного параметра bounds.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Записать в столбец координаты начал и концов отрезков

Сообщение Boris » 28 мар 2014, 16:13

dab писал(а): Да, по сути мой пост совпадает с этим, но я решил уточнить момент установки параметра CoordSys и то, что TableInfo("название-вашей-таблицы", TAB_INFO_COORDSYS_CLAUSE) более универсальный подход, хотя бы из-за возможно пропущенного параметра bounds.
А... То есть есть предположение, что автор установку к.системы делал в окне мапбасика, а запускал расчет в программе на мапбайсике...
Тогда конечно не сработает, т.к. каждое приложение использует копию системных настроек мапинфо.
Но для чего устанавливать СК таким способом? Команда

Код: Выделить всё

set coordsys table my_tab
заданная в коде должна работать и так.

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Записать в столбец координаты начал и концов отрезков

Сообщение dab » 28 мар 2014, 16:44

Boris писал(а):Но для чего устанавливать СК таким способом? Команда

Код: Выделить всё

set coordsys table my_tab
заданная в коде должна работать и так.
Да, Вы правы, так проще. :oops:

Ответить

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

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

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