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

Извлечь координаты полилинии

Добавлено: 02 фев 2015, 21:01
KatyaBojko
Здравствуйте, уважаемые знатоки Mapinfo.
Подскажите, как решить такую задачу:
Нарисован ряд полилиний. При выделении одной из них и нажатии F7 на экран высвечивается геоинформация, в которой прописаны координаты начала и конца полилинии.
Подскажите, как можно извлечь эти данные в табличную форму? Если программа выдаёт эти данные, значит они где-то содержатся!
Во вложении - пример задачи.
Спасибо всем. Буду рада любым ответам!

Re: Извлечь координаты полилинии

Добавлено: 02 фев 2015, 21:11
gamm
KatyaBojko писал(а):Подскажите, как решить такую задачу
RTFM, export MIF/MIF

Re: Извлечь координаты полилинии

Добавлено: 02 фев 2015, 22:42
KatyaBojko
Спасибо, конечно.
Но, нельзя ли более подробнее, потому как при экспорте в mid/mif и дальнейшем его импорте, ничего не происходит.
И если можно, без RTFM!

Re: Извлечь координаты полилинии

Добавлено: 02 фев 2015, 23:08
thegeo
Открываете полученный MIF в Блокноте и используете координаты по вашему усмотрению, например, копируете в Excel или Word.

Re: Извлечь координаты полилинии

Добавлено: 03 фев 2015, 02:21
Boris
На приведенном снимке нет полилинии. На нем показана линия - один сегмент, одна часть, не изгибов (в этой проекции). Подозреваю, что и вершин в ней то же только две.
Вот теперь либо покажите MIF, либо расскажите, что собственно делаете и главное какой результат ищите. Пока что показанное решается действительно через MIF, либо через 3-4 запроса+руками сделать движения.

Re: Извлечь координаты полилинии

Добавлено: 03 фев 2015, 07:18
Sibit
У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки. Последняя точка в сегменте дает функция ObjectInfo( obj, 21 + i ) где i - номер сегмента.

PS Остальное можно прочитать в документации :)

PPS И не забудьте в Настройки>Режимы>Окно карты>Проекция для сеанса убедиться что эта проекция совпадает с проекцией вашей таблицы.

Re: Извлечь координаты полилинии

Добавлено: 03 фев 2015, 07:26
gamm
KatyaBojko писал(а):И если можно, без RTFM
без чтения мануала никак нельзя - там написано, что в файле MIF содержится желанная текстовая табличка с координатами полилинии. А также то, что бывают PLINE и LINE (на картинке - последнее, судя по всему). И много еще разного интересного :mrgreen:

Re: Извлечь координаты полилинии

Добавлено: 03 фев 2015, 10:44
KatyaBojko
Всем спасибо огромное!
У меня в таблице имеются как линии, так и полилинии. Атрибутивная таблица содержит информацию, как то - номер линии, её данные. Мне необходимо было заполнить эту таблицу еще и координатами начала и конца линий.
Содержание файла MIF не удобен в моём случае, так как координаты, которые отображаются, не привязаны, например к номеру линии. Метод с обновлением колонки подошёл. Использовала оператор ObjectgeoGraphy(Obj,X), только X - от 1 до 4 это, соответственно X1, Y1, X2, Y2.

Re: Извлечь координаты полилинии

Добавлено: 03 фев 2015, 10:47
KatyaBojko
[quote="Sibit"]У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки.

Спасибо Вам. Меня именно интересовал метод с обновлением колонки!

Re: Извлечь координаты полилинии

Добавлено: 04 фев 2015, 00:40
Boris
KatyaBojko писал(а):
Sibit писал(а):У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки.

Спасибо Вам. Меня именно интересовал метод с обновлением колонки!
Не хотелось бы вас огорчать, но вы получили форменную глупость этим запросом, в случае если у вас были полиниии.
Потому что для линий 1 и 2 - это координаты начала линии, а 3 и 4 - это конец. Для всех остальных фигур - это наименьшие и наибольшие координаты MBR (минимального охватывающего прямоугольника в выбранной проекции):
OBJ_GEO_MINX
Minimum x-coordinate of an object's minimum bounding rectangle (MBR), unless the object is a line; if the object is a line, returns same value as OBJ_GEO_LINEBEGX.
Для правильного ответа на вопрос необходимо использовать еще и функцию ObjectInfo( ) для получения количества точек в полилинии (и всех ее сегментах). Если конечно вопрос был именно в координатах начала и конца, а не что то подразумеваемое, но иное.

Re: Извлечь координаты полилинии

Добавлено: 04 фев 2015, 05:44
Sibit
Boris писал(а): Не хотелось бы вас огорчать, но вы получили форменную глупость этим запросом, в случае если у вас были полиниии.
Что ж вы так в людей не верите? Может автор догадался в два приема таблицу обновить.

Re: Извлечь координаты полилинии

Добавлено: 05 фев 2015, 02:41
Boris
Я в людей как раз верю. И потому отметил, что без знания количества сегментов, если они не в одну линию, а ветвятся, то это вообще все дает неопределенность, и количества вершин в последнем из них, получите то, что сказано выше. В самом крайнем случае, линию указывающую перпендикулярно искомой.