Страница 1 из 1

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

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

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

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

Добавлено: 27 мар 2014, 03:51
trir

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

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

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

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

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

Добавлено: 27 мар 2014, 08:51
Slinger
ObjectGeography (obj, аргумент)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 28 мар 2014, 15:48
Boris
dab писал(а):Перед получением координат через функции типа ObjectGeography() выполните явную установку системы координат

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

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

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

Добавлено: 28 мар 2014, 15:51
Boris
trir писал(а):STEndpoint.STX
и правда не по теме. автор, давайте удалим?

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

Добавлено: 28 мар 2014, 16:07
dab
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.

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

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

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

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

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

Добавлено: 28 мар 2014, 16:44
dab
Boris писал(а):Но для чего устанавливать СК таким способом? Команда

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

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