www.map-info.ru :: Просмотр темы - создание линии по координатам
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
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%!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru