идентификация линий по объектам
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
идентификация линий по объектам
Версия MI 10.5; Операционная система Windows7; Тип геообъектов - линии;СК-42;Долгота/Широта WGS_84;
Вопрос: можно ли линиям, берущим своё начало от различных объектов(полигонны,точки, линии) присвоить идентификатор этого объекта? Если можно, то как это сделать для линий, берущих своё начало от центра полигонов?
Вопрос: можно ли линиям, берущим своё начало от различных объектов(полигонны,точки, линии) присвоить идентификатор этого объекта? Если можно, то как это сделать для линий, берущих своё начало от центра полигонов?
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: идентификация линий по объектам
как понять идентификатор? некоторое свойство с таким именем? тогда:
Запрос вида "меню таблица/обновить колонку..." щелкаем кнопку "объединить" и выбираем нужный вариант.
при необходимости центроиды полигонов можно выдрать на новый слой. если линии начинаются не точно в центре или есть топологические погрешности, можно выстроить небольшие буферы-круги около центроидов полигонов.
Запрос вида "меню таблица/обновить колонку..." щелкаем кнопку "объединить" и выбираем нужный вариант.
при необходимости центроиды полигонов можно выдрать на новый слой. если линии начинаются не точно в центре или есть топологические погрешности, можно выстроить небольшие буферы-круги около центроидов полигонов.
"Если карта не соответствует местности, доверяй местности."
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
Re: идентификация линий по объектам
Говоря идентификатор, я имею в виду что полигоны проидентифицированны как 1,2,3 и мне нужно,чтобы линии, также показанные на рисунке имели идентификацию,такую же как и соответствующие им полигоны. Только нужно учесть, что линий, как и полигонов,очень и очень много:
попробовал ваш метод выходит ошибка,что не удалось обновить таблицу.
Спойлер

-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: идентификация линий по объектам
скорее всего таблица неупакованная (с серыми строками от удаленных записей). Упакуйте ее (Таблица\Изменить\Упаковать)
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
Re: идентификация линий по объектам
А если вот такой вариант, когда линии, начинаясь в одном полигоне, пересекают несколько, а нужно, чтобы линия была проидентифицированна, как тот полигон от которого она берёт своё начало,что тогда делать? 
Спойлер

- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: идентификация линий по объектам
Если объекты действительно линии (имеют 2 вершины) и только одна (начальная) из этих вершин попадает в полигон, тогда порядок такой:
1. разваливаем линии на точки (утилита OBJ_CONV.MBX)
2. обновляем для точек поле "идентификатор"
3. из полученного результата удаляем все пустые значения (точки, которые не попадают в полигоны) и упаковываемся
4. обновляем идентификатор слоя линий по значениям слоя точек
1. разваливаем линии на точки (утилита OBJ_CONV.MBX)
2. обновляем для точек поле "идентификатор"
3. из полученного результата удаляем все пустые значения (точки, которые не попадают в полигоны) и упаковываемся
4. обновляем идентификатор слоя линий по значениям слоя точек
"Если карта не соответствует местности, доверяй местности."
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
Re: идентификация линий по объектам
А после того как мы обновили идентификатор слоя линий по значениям слоя точек, можно автоматически построить линии, которые будут идти к какому либо одному объекту?
Спойлер

-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 30 ноя 2011, 09:41
- Репутация: 0
Re: идентификация линий по объектам
а фиг знает, наверно можно... только в мапинфо руками скорее всего значительно быстрее получится
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: идентификация линий по объектам
если еще не решили вторую половину задачи. то ее можно быстро и без усилий автоматизировать, если вы знаете начало и конец линий.
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
Re: идентификация линий по объектам
Да я действительно знаю координаты начала и конца линий, вы бы мне очень помогли...
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: идентификация линий по объектам
Функция MapBasic1985student писал(а):Да я действительно знаю координаты начала и конца линий, вы бы мне очень помогли...
является, простите за тавтологию - ФУНКЦИЕЙ. А значит ее без проблем можно вызывать в запросах типа INSERT и UPDATE к гео-объекту OBJ. Пример с INSERT есть в хелпе по мапбасику. Сам мапбасик есть в любой последней мапинфо. Я не говорю, что его надо использовать для этой простейшей задачи - хватит окна MapBasic в самой мапинфо, но хелп содержит все функции и все их можно использовать внутри мапинфо.CreateLine( ) function
Returns an Object value representing a line.
Syntax
CreateLine( x1, y1, x2, y2 )
Теперь по шагам:
а) устанавливаем верную систему координат внутренних команд MapBasic
set coordsys table имя_таблицы
иначе все координаты получите в неизвестной системе координат
б) делаем запрос на пары точек или объетов, что вам нужно соединить в него включаем функции CentroidX / centroidy для обеих концов линии (отрезка).
в) сохраняем его как отдельную таблицу. в него будут сохранены гео-объекты от первой таблицы в запросе
г) делаем update что бы присвоить имеющимся объектам линии соединяющие точки. координаты точек берем из соответсвующих столбцов, созданных в запросе
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя