MapInfo: SQL запрос (параллельные линии)

MapInfo, MapBasic
Ответить
Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

MapInfo: SQL запрос (параллельные линии)

Сообщение Winsent » 13 мар 2008, 04:15

Добрый день, возникла такая проблемма:
при объединении 2х таблиц возникли дубли линий, они не пересекаются, а находятся оч. рядом друг с другом.

Поэтому возникла необходимость выбрать линии которые находятся на определенном растоянии друг от друга.

По наивности пробывал с таким условием:

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

distance ( CentroidX ( old.obj ) , CentroidY ( old.obj ) , CentroidX (new.obj ) , CentroidY ( new.obj ) , "m" ) < 00,1 
непомогло.)

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 13 мар 2008, 04:18

а центроид линии это что такое?

может получится через буфер нужного размера?
пристегивайтесь, турбулентность прямо по курсу

Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Сообщение Winsent » 13 мар 2008, 04:28

sim писал(а):а центроид линии это что такое?
Забыл пояснить, что я дилетант в какой-то степени.
может получится через буфер нужного размера?
Ну хорошо, попробую. Правда плохо еще себе представляю.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 13 мар 2008, 04:38

Центроидом обычно называют центральную точку полигона, к которой привязывается к нему атрибутика. Я не уверен насчет Mapinfo, возможно центроид там - просто геометрический центр.

А линии - геометрические дубли, которые просто смещены? Или они все-таки немного разные? Если первое, то может просто рассчитать длины для всех линий, дальше отобрать по точно совпадающим длинам?
пристегивайтесь, турбулентность прямо по курсу

Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Сообщение Winsent » 13 мар 2008, 04:48

Те линни которые совпадали по длине или пересекались, я екнул. Остались те которые видимо искажены и не пересекаются. Я тут впринципе посмотрел буферы, должно получиться. Попробую и отпишусь. Спасибо (за скорость, и точность)) в рекомендациях).

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Сообщение KolesovDmitry » 13 мар 2008, 09:28

sim писал(а):а центроид линии это что такое?
В MapInfo центроидом линии будет центр ограничивающего прямоугольника.

Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Сообщение Winsent » 13 мар 2008, 11:30

Да, аодскажите еще такой момен, можно ли делать запрос на выборку из трех таблиц

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

SELECT * FROM old, buff, new WHERE buff.Obj Intersects new.obj AND old.Dlina=new.Dlina_c
Мне почему-то говорит, что неправильно задано условие объединения (WHERE)
Последний раз редактировалось Winsent 13 мар 2008, 11:42, всего редактировалось 1 раз.

lalex
Участник
Сообщения: 74
Зарегистрирован: 07 фев 2006, 22:54
Репутация: 0

Сообщение lalex » 13 мар 2008, 11:41

Гляньте внимательно орфографию запроса - названия таблиц
И больше так не делайте!
:)
Через буферы и центроиды не знаю, но полноценно такие задачи решаются сравнением координат всех вертексов с учетом допуска. В ГИС обычно есть процедуры сближения близких вертексов, при задании большой дискретности пространства (равной допуску анализа). Это работает для покрытий ArcINFO, в MapInfo не знаю.
Последний раз редактировалось lalex 13 мар 2008, 11:46, всего редактировалось 1 раз.

Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Сообщение Winsent » 13 мар 2008, 11:44

lalex писал(а):Гляньте внимательно орфографию запроса - названия таблиц
И больше так не делайте!
:)
Да нет, дело к сожалению не в орфографии, это я тут очепятался (когда переименовывал таблицы для удобочитаемости).

lalex
Участник
Сообщения: 74
Зарегистрирован: 07 фев 2006, 22:54
Репутация: 0

Сообщение lalex » 13 мар 2008, 15:39

Тогда не знаю. На взгляд SQL-щика остальное правильно, наверно, чисто мапинфовские штучки. Гляньте вот тут еще, мож что навеет - но это стандарт OGIS SQL, не факт что мапинфо его поддерживает.
http://citforum.ru/database/articles/spatial/#3_5

dotzent
Новоприбывший
Сообщения: 2
Зарегистрирован: 06 июн 2008, 13:20
Репутация: 0

Сообщение dotzent » 06 июн 2008, 14:59

CentroidX і CentroidY для ліній не працює. Варто спробувати задатись координатами вершин.

Ответить

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

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

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