Добавление в таблицу колонок координат точек

MapInfo, MapBasic
1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Добавление в таблицу колонок координат точек

Сообщение 1985student » 31 окт 2011, 13:09

подскажите пожалуйста как в таблицу, состоящую только из точечных объектов добавить 2 колонки в которых автоматически бы были прописаны координаты этих объектов?

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 31 окт 2011, 15:55

Меню Программы>Каталог программ>Записать координаты объекта (Coordinate Extractor)

1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Re: Добавление в таблицу колонок координат точек

Сообщение 1985student » 31 окт 2011, 19:22

Большое спасибо, Колонки с координатами появились,только никак не могу разобраться, что сделать,чтобы значения отображались,как Градусы минуты секунды с соответствующими обозначениями?

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 01 ноя 2011, 08:51

Меню Программы>Каталог программ>Пересчет (Degree Converter)

1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Re: Добавление в таблицу колонок координат точек

Сообщение 1985student » 01 ноя 2011, 09:21

Я имею в виду, чтобы в колонках были не такие значения (9 096 353,34), а вот именно такие (44° 41' 12,26148"). Возможно ли это ?????

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 01 ноя 2011, 10:22

Вот источник http://support.microsoft.com/kb/213449
Для пересчета нужно экспортировать таблицу Таблица>Экспорт в dbf (у меня именно с ним вышло), в экселе произвести все операции как прописано в источнике и сохранить таблицу как файл xls. В Mapinfo он легко откроется и ваши колонки будут иметь вид ГМС в стандартном исполнении.

1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Re: Добавление в таблицу колонок координат точек

Сообщение 1985student » 01 ноя 2011, 10:27

Огромнейшее спасибо!

1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Re: Добавление в таблицу колонок координат точек

Сообщение 1985student » 01 ноя 2011, 13:52

Я так понял в Microsoft Visual Basic, каждую координату нужно вбивать отдельно??? Я правильно понимаю?

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 01 ноя 2011, 14:29

Ничего отдельно вбивать не нужно. Есть колонка B с десятичными координатами, берет начало с ячейки B2, есть колонка С, где будут ГМС, берет начало с ячейки C2. После того как вы создали модуль, возвращаетесь в excel и в ячейку C2 вписываете =Convert_Degree(B2),нажимаете ввод. Затем растягиваете формулу =Convert_Degree(B2) вниз на всю колонку С.
=Convert_Degree(B3)
=Convert_Degree(B4)
=Convert_Degree(B5)
=Convert_Degree(B6)
.....
И все, колонка С имеет ГМС.
Трогать код Visual Basic не надо.

Аватара пользователя
Institor
Активный участник
Сообщения: 240
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

Re: Добавление в таблицу колонок координат точек

Сообщение Institor » 02 ноя 2011, 06:29

Есть еще программа mapinfo "Пересчет градусов" (входит в стандартный набор). Правда она выводит в одну колонку с разделителями, без обозначений (°, ' , ")

gamm
Гуру
Сообщения: 2985
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 696
Ваше звание: программист
Откуда: Казань

Re: Добавление в таблицу колонок координат точек

Сообщение gamm » 02 ноя 2011, 07:20

а зачем все эти мучения?

просто написать что-то типа (foo - исходные градусы десятичные)

Format$(int(foo),"#") + "o"+
Format$(int(60*(foo-int(foo))),"#") +"'"+
Format$(((foo-int(foo))-int(60*(foo-int(foo)))/60)*3600,"#.#####")+""""

религия не позволяет?

P.S. это на скорую руку, могут быть очепятки ...

Аватара пользователя
Institor
Активный участник
Сообщения: 240
Зарегистрирован: 22 апр 2011, 08:10
Репутация: 27
Откуда: Хабаровск

Re: Добавление в таблицу колонок координат точек

Сообщение Institor » 02 ноя 2011, 07:40

Это гениально!

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 02 ноя 2011, 08:30

Да. Красивое решение. Я предполагал, что все это можно было сделать используя строковые функции Mapinfo, но так и недопетрил как это осуществить. Сразу видно программист постарался.

1985student
Участник
Сообщения: 58
Зарегистрирован: 02 сен 2010, 22:44
Репутация: 4
Откуда: Нижний Новгород

Re: Добавление в таблицу колонок координат точек

Сообщение 1985student » 02 ноя 2011, 08:34

Объясню всё подробнее. У меня имеются точки, я при помощи программы "Записать координаты объекта" добавляю 2 колонки с координатами в свою таблицу. Эти координаты отображены в метрах(9596880,25532872-это координата широты одной точки), а мне же как минимум для того чтобы воспользоваться Visual Basic нужно иметь координаты в десятичных градусах(52,70559554), в таблице MapInfo их в таком виде отобразить не получается, вот и в итоге тупик. :(

kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Добавление в таблицу колонок координат точек

Сообщение kamennovs » 02 ноя 2011, 08:56

Можно еще вот так унифицировать выражение.

Format$(int(foo),"#") + Chr$( 176 ) +
Format$(int(60*(foo-int(foo))),"#") +Chr$( 146 ) +
Format$(((foo-int(foo))-int(60*(foo-int(foo)))/60)*3600,"#.#####")+Chr$( 148 )

Ответить

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

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

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