Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
AlexB
Зарегистрирован: 04.09.2008 Сообщения: 9 Откуда: СПб
|
Добавлено: Чт Сен 04, 2008 3:23 pm Заголовок сообщения: создание линии по координатам |
|
|
Добрый день уважаемому сообществу.
Прошу прокомментировать следующую ситуацию:
Имеется таблица, импортированная из Access или Excel, в которой четыре столбца составляют две пары координат. Сохранение в *.tab на дальнейшее не влияет.
В справке приведён пример создания линий по координатам посредством update point_table set obj=createline(Start_X, Start_Y,End_X,End_Y).
Таблица обновляется, в ней появляется поле obj, генерируются линии, но при этом на карте все они выставляются в точку с максимальными координатами по X и Y. Т.о. в точке (1500,00 1500,00) существует множество линий нулевой длины. Координатная систем план-схема в метрах задаётся явно и превышает поле значений координат.
Подскажите, пожалуйста, что сделал не так? _________________ Удачи,
Alexander |
|
Вернуться к началу |
|
|
Нестеров Валерий
Зарегистрирован: 21.03.2006 Сообщения: 492
|
Добавлено: Пт Сен 05, 2008 7:50 am Заголовок сообщения: |
|
|
Самое простое скачать и установить Инструментарий для MapInfo.
Затем сделать текстовый файлик в таком виде:
x1 y1
x2 y2
x3 y3
...
xN yN
Теперь в инструментарии нажать кнопку "Ввод линии по координатам", а в нем нажать на кнопочку "открыть файл" и выбираете ваш текстовый файлик с координатами.
Теперь нажимаем построить и будут построены отдельные линии по каждой паре координат.
------------------------------
Таким же образом можно строить по координатам из текстового файла и полилинии и полигоны, только там для разделения объектов нужно после координат окончания обекта сделать пустую строку и ниже координаты следующего объекта. _________________ Жизнь прекрасна!i |
|
Вернуться к началу |
|
|
AlexB
Зарегистрирован: 04.09.2008 Сообщения: 9 Откуда: СПб
|
Добавлено: Пт Сен 05, 2008 9:51 am Заголовок сообщения: потеря свойств |
|
|
Нестеров Валерий писал(а): |
Затем сделать текстовый файлик в таком виде:
x1 y1
x2 y2
x3 y3
...
Теперь нажимаем построить и будут построены отдельные линии по каждой паре координат.
------------------------------
. |
Как я понимаю, этот метод создаст мне голые линии, а основная идея всего этого безобразия - визуализировать схему соединения объектов. Причём основное - это свойства связей, а не сами связи, иначе их можно было бы просто трассировать. Или я неправ? _________________ Удачи,
Alexander |
|
Вернуться к началу |
|
|
Нестеров Валерий
Зарегистрирован: 21.03.2006 Сообщения: 492
|
Добавлено: Пт Сен 05, 2008 8:42 pm Заголовок сообщения: |
|
|
Человеку понятней визуальное представление, чем набор цифр.
А то по вашему и карты не рисовали бы, а прописывали границы объектов цифрами в таблицах... но взглянув на карту из миллиона объектов и на таблицу, понятно, что визуалльное человек схватит налету, а цифры они только для процессоров приятны ))).
Иначе говоря, по правильному, объекты имеющие пространственные связи должны быть отрисованы, а их свойства прописаны в таблицах.
Другое дело, что чем дальше, тем больше стираются границы между базами данных и графикой, так как все идет к тому, что бы все хранить в БД, а отображать в том, чём удобнее человеку. Вы можете кстати и в MapInfo графику положить в СУБД, например Oracle, и уже своей программкой работать с таблицами хранения пространственной информации. Получится, что и ваша программка и MapInfo будут брать значения из одного места... ))) _________________ Жизнь прекрасна!i |
|
Вернуться к началу |
|
|
AlexB
Зарегистрирован: 04.09.2008 Сообщения: 9 Откуда: СПб
|
Добавлено: Пт Сен 05, 2008 9:44 pm Заголовок сообщения: уточнение |
|
|
Нестеров Валерий писал(а): |
Иначе говоря, по правильному, объекты имеющие пространственные связи должны быть отрисованы, а их свойства прописаны в таблицах.
...
))) |
Увы, задачи приходится решать по мере их поступления, а лень - двигатель прогресса.
Вот я на руках имею таблицу примерно в десять тысяч записей. В каждой записи семнадцать полей, и всего четыре из них - координаты в "план-схеме", а остальные тринадцать - свойства каждой "линии". И мне нужно переложить это в MapInfo.
И я не могу понять, почему стандартная функция мне возвращает билиберду. Решение, предложенное в английской версии справочной системы (которго, кстати в русской редакции нет) позволяет мне нарисовать линии в "широте-долготе", а с план-схемой этот фокус не проходит.
Понятно, что это лечится шаманством с системой координат.
Но вот как? Может, кто-то это всё-таки поборол? _________________ Удачи,
Alexander |
|
Вернуться к началу |
|
|
AlexB
Зарегистрирован: 04.09.2008 Сообщения: 9 Откуда: СПб
|
Добавлено: Сб Сен 06, 2008 8:12 am Заголовок сообщения: победа сил добра над силами разума |
|
|
Всё, победил. Решение не отличается изяществом, зато эффективно.
Шаманство с системой координат заключается в том, что после получения линий из функции createline в системе "широта-долгота" достаточно:
- экспортировать таблицу в mid/mif,
- открыть *.mif любым текстовым редактором и вместо строки
CoordSys Earth Projection 1, 0
вставить
CoordSys NonEarth Units "m" Bounds (0, 0) (150, 150)
//Разумеется, что границы план-схемы должны быть шире, чем поле Ваших значений
- сохранить изменения,
- вернуться в MI и импортировать таблицу... всё.
...вот так, с помощью верёвочной петли и палки мы построили угол в один радиан.
ЗЫ: Для координат размерностью более 360 (или соизмеримой величины) работать это не будет. Оно и ясно: "широта-долгота". Похоже, придётся перепитонивать *.mif. А как не хотел... _________________ Удачи,
Alexander |
|
Вернуться к началу |
|
|
Serj
Зарегистрирован: 25.08.2006 Сообщения: 50
|
Добавлено: Пн Сен 08, 2008 1:13 pm Заголовок сообщения: |
|
|
Преред Update надо выставить систему координат для работы. В окне MapBasic даем команду "Set CoordSys Table имя_тавлицы", и будет счастье... |
|
Вернуться к началу |
|
|
AlexB
Зарегистрирован: 04.09.2008 Сообщения: 9 Откуда: СПб
|
Добавлено: Вт Сен 09, 2008 8:36 am Заголовок сообщения: |
|
|
Serj писал(а): |
Преред Update надо выставить систему координат для работы. В окне MapBasic даем команду "Set CoordSys Table имя_тавлицы", и будет счастье... |
Увы, не будет. Функция createline коряво обрабатывает координаты, если они не широта/долгота. Не верите - проверьте :) _________________ Удачи,
Alexander |
|
Вернуться к началу |
|
|
Serj
Зарегистрирован: 25.08.2006 Сообщения: 50
|
Добавлено: Вт Сен 09, 2008 12:26 pm Заголовок сообщения: |
|
|
Зачем разводить демагогию, когда дают ответ на поставленный вопрос! Самому попробовать сложно??? Все работает на 100%!!! |
|
Вернуться к началу |
|
|
|