Страница 1 из 2
Как создать карту в MapBasic
Добавлено: 18 июн 2009, 15:42
cheyus
Помогите начинающему!
Есть xls файлик координатами объектов, из которого хотел создать карту с нанесение символов на каждую строку в таблицу. Пробовал увидеть в окне MB в MapInfo, но ничего не увидел. Посмотрел help, думал сделать через функцию "создать символ", но не получилось. В открывшемся окне карты ничего нет. Помогите примером, пожалуйста!
Re: Как создать карту в MapBasic
Добавлено: 19 июн 2009, 09:11
SS_Rebelious
Простите, не совсем понимаю, что Вы хотите получить: символы в ячейках атрибутивной таблицы, или же точечные объекты на карте, построенные на основании табличных данных? Если последнее, то Вам следует воспользоваться меню "Таблица"->"Создать точечные объекты".
Re: Как создать карту в MapBasic
Добавлено: 19 июн 2009, 11:46
Boris
На таблице Excel такое не возможно без присоединения к ней географической информации.
Re: Как создать карту в MapBasic
Добавлено: 19 июн 2009, 12:04
reasonat
Но ведь присоединить графическую информацию к таблице Excel в MapInfo очень просто. Если у MapInfo версия меньше 9, надо сначала сохранить копию таблицы, открытой через Файл/Открыть, тогда эту таблицу можно будет редактировать (кажется, еще галку надо поставить "разрешить присоединять географические объекты). А в MapInfo 9 все проще, можно уже при открытии файла XLS выбрать галку "Создать копию в формате MapInfo для чтения/записи".
После этого можно идти в меню Таблица/Создать точечные объекты, и там выбирать к какой таблице создавать точки, каким стилем и из каких полей брать координаты.
Нужные команды при этом пропишутся в окне MapBasic

Re: Как создать карту в MapBasic
Добавлено: 19 июн 2009, 14:40
cheyus
Все правильно, я хотел создать точечные объекты на карте. Как это сделать в MapInfo я знаю, но в окне бейсика в этот момент прописывается не все, только создать карту, и все. Если скопировать в MB то в результате получается пустая карта, даже через сохранение и открытие карты, карта открывается, но пустая. Вот поэтуму и ищу у Вас провфессионалов, совета.
Re: Как создать карту в MapBasic
Добавлено: 22 июн 2009, 15:15
reasonat
Действительно, "Создать точечные объекты" - не команда, а целая утилита, не выводится в окне MapBasic.
Тогда вот код:
сначала надо установить нужную систему координат:
потом открываем таблицу Excel в MapInfo
Код: Выделить всё
Register Table "файл с координатами.XLS" TYPE XLS Into "файл с координатами.TAB"
Open Table "файл с координатами.TAB" As Координаты
сохраняем копию, чтоб можно было редактировать (и присоединяем графику к таблице)
Код: Выделить всё
Commit Table Координаты As "таблица с точками.tab"
Close Table Координаты
Open Table "таблица с точками.TAB" As Точки_по_координатам
Create Map For Точки_по_координатам CoordSys ...
в цикле по строкам таблицы создаем для каждой строки объект типа Point (считая, что X и Y содержатся в первых двух колонках)
Код: Выделить всё
row_id = 1
Fetch First From Точки_по_координатам
While Not EOT (Точки_по_координатам)
Update Точки_по_координатам
Set Obj = CreatePoint( Col1, Col2 )
Where Rowid = row_id
row_id = row_id + 1
Fetch Next From Точки_по_координатам
Wend
Map From Точки_по_координатам
Re: Как создать карту в MapBasic
Добавлено: 23 июн 2009, 00:37
Boris
Все хорошо, но цикл там не присуствует.
Код: Выделить всё
Update Точки_по_координатам
Set Obj = CreatePoint( Col1, Col2 )
Работает и быстрее, и надежнее, и проще.
Re: Как создать карту в MapBasic
Добавлено: 23 июн 2009, 08:08
reasonat
действительно, оплошала ) спасибо
Re: Как создать карту в MapBasic
Добавлено: 23 июн 2009, 13:26
cheyus
Update Точки_по_координатам
Set Obj = CreatePoint( Col1, Col2 )
А здесь нужно задавать какой именно символ, или по умолчанию ставится определенный?
Re: Как создать карту в MapBasic
Добавлено: 23 июн 2009, 16:41
cheyus
Update sector_5
Set Obj = CreatePoint(Lon, Lat)
Symbol(53,RGB(187,187,187),48,CHEYUS,0,0)
Что то не получается задать символ, который меня интересует. Что не так ?
Re: Как создать карту в MapBasic
Добавлено: 23 июн 2009, 23:00
reasonat
немного наоборот, сначала задать стиль для будущих символов, а потом создавать их
Код: Выделить всё
Set Style Symbol MakeFontSymbol(53,RGB(187,187,187),48,CHEYUS,0,0)
Update sector_5
Set Obj = CreatePoint(Lon, Lat)
Re: Как создать карту в MapBasic
Добавлено: 24 июн 2009, 09:33
cheyus
А название шрифта нужно ставить в кавычки ("Cheyus") или нет? А то мне кажется MI воспринимает шрифт как колонку, и ругается что не определена переменная или поле CHEYUS.
Re: Как создать карту в MapBasic
Добавлено: 24 июн 2009, 11:15
reasonat
да, конечно, название шрифта в кавычках.
в справке MapBasic очень понятно все расписано, проще было там найти

Re: Как создать карту в MapBasic
Добавлено: 24 июн 2009, 14:56
cheyus
Я не волшебник, я только учусь!

Re: Как создать карту в MapBasic
Добавлено: 24 июн 2009, 16:18
cheyus
Теперь нужно повернуть символ на азимут указанный в отдельной колонке. Есть подсказочки?
