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

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 10:50
alexey.m
А такой вопрос - как то можно посчитать в mapinfo длину сторон полигона? Так будет даже проще.

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 10:51
trir
теорию изучают на лекциях или по книжкам...
как то можно посчитать в mapinfo длину сторон полигона? Так будет даже проще.
сомневаюсь, вам же не всю длину нужно, а
Именно ту длину, которая является общей частью для слоев линий и полигонов.
а она получается так: ObjectLen(Overlap(l.obj, p.obj),"m")

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:07
alexey.m
trir писал(а):
28 июн 2018, 10:51
а она получается так: ObjectLen(Overlap(l.obj, p.obj),"m")
l.obj и p.obj что тут нужно указать?

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:10
trir
l.obj и p.obj что тут нужно указать?
слой это уже таблица с двумя полями: ключ (.Num) и геометрия (.obj)

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:12
ginpetr
обновите эти единственные поля в обоих таблицах выражением
rowid
(будут хотя бы номера объектов)
и делайте уже запрос

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:33
ginpetr
а это выражение
ObjectLen(Overlap(l.obj, p.obj)
посчитает, ведь, не только смежные, но и те линии, которые пересекают, но не имеют общих сегментов с полигонами, разве нет?

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:45
juffin_h
Да. Но здесь остается только рассчитывать на корректность исходных данных или на то, что линия проходящая близко к сегменту полигона (внутри полигона) считается проходящей по сегменту.

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 11:51
juffin_h
Если объекты никак не поименованы и не пронумерованы - пронумеруйте их.

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

Update ltab Set LNum = RowID
Update ptab Set PNum = RowID
Поля LNum и PNum д.б. в таблицах. Могут называться как хотите. Создайте новые или используйте те, что есть.
Потом как написано выше.
alexey.m писал(а):
28 июн 2018, 11:07
l.obj и p.obj что тут нужно указать?
Если таблицы у вас называются l и p то указывать надо то, что написано, буквально. obj это специальное поле - геометрия объекта. В окне таблицы Вы его не найдете.

Re: Вычисление длин в MapInfo

Добавлено: 28 июн 2018, 19:50
Boris
А можно я вас потроллю? Ну, вот зачем, вы отвечаете на вопрос, в котором для ответа необходима куча предположений, вместо того, что бы спросить какую именно задачу решает автор? И как он эти данные получил?
Картинка реализует геометрическое отношение "является границей" или "касание отрезком", на мой взгляд. Как то это должно описываться в операторах мапинфо.
И если мы говорим именно о касании, то проще разделить линию на отрезки и смотреть уже их. Там и длина получится однозначной.
Или вообще линию и прямоугольники разбить на вершины (точки), через утилиту "найти ближайшие" выявить точки, что находятся в пределах минимального расстояния, и вычислять расстояние между ними.
И тогда опять возвращаемся к задаче, данным и вопросу - "А что уже умеет автор?".

Re: Вычисление длин в MapInfo

Добавлено: 29 июн 2018, 12:01
juffin_h
Нам всегда приходится делать какие то предположения.
Владимир Владимирович Маяковский:
мы говорим Ленин,
подразумеваем — партия,
мы говорим партия,
подразумеваем — Ленин.
Я предлагаю решение задачи как я ее вижу, основываясь на своем жизненном опыте. И, конечно, я могу ошибаться. Но с большой долей вероятности это то, что нужно автору темы. Кроме того я "убиваю" двух зайцев.
Если я прав, то задача решена. Если нет - автор темы расскажет нам о проблемах а значит и деталях, которые пришлось бы из него вытягивать.