Как создать карту в MapBasic

MapInfo, MapBasic
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Как создать карту в MapBasic

Сообщение cheyus »

Помогите начинающему!
Есть xls файлик координатами объектов, из которого хотел создать карту с нанесение символов на каждую строку в таблицу. Пробовал увидеть в окне MB в MapInfo, но ничего не увидел. Посмотрел help, думал сделать через функцию "создать символ", но не получилось. В открывшемся окне карты ничего нет. Помогите примером, пожалуйста!
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение SS_Rebelious »

Простите, не совсем понимаю, что Вы хотите получить: символы в ячейках атрибутивной таблицы, или же точечные объекты на карте, построенные на основании табличных данных? Если последнее, то Вам следует воспользоваться меню "Таблица"->"Создать точечные объекты".
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Как создать карту в MapBasic

Сообщение Boris »

На таблице Excel такое не возможно без присоединения к ней географической информации.
reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение reasonat »

Но ведь присоединить графическую информацию к таблице Excel в MapInfo очень просто. Если у MapInfo версия меньше 9, надо сначала сохранить копию таблицы, открытой через Файл/Открыть, тогда эту таблицу можно будет редактировать (кажется, еще галку надо поставить "разрешить присоединять географические объекты). А в MapInfo 9 все проще, можно уже при открытии файла XLS выбрать галку "Создать копию в формате MapInfo для чтения/записи".
После этого можно идти в меню Таблица/Создать точечные объекты, и там выбирать к какой таблице создавать точки, каким стилем и из каких полей брать координаты.

Нужные команды при этом пропишутся в окне MapBasic :)
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

Все правильно, я хотел создать точечные объекты на карте. Как это сделать в MapInfo я знаю, но в окне бейсика в этот момент прописывается не все, только создать карту, и все. Если скопировать в MB то в результате получается пустая карта, даже через сохранение и открытие карты, карта открывается, но пустая. Вот поэтуму и ищу у Вас провфессионалов, совета.
reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение reasonat »

Действительно, "Создать точечные объекты" - не команда, а целая утилита, не выводится в окне MapBasic.
Тогда вот код:
сначала надо установить нужную систему координат:

Код: Выделить всё

Set CoordSys ...
потом открываем таблицу 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 Точки_по_координатам
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Как создать карту в MapBasic

Сообщение Boris »

Все хорошо, но цикл там не присуствует.

Код: Выделить всё

Update Точки_по_координатам
      Set Obj = CreatePoint( Col1, Col2 )
Работает и быстрее, и надежнее, и проще.
reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение reasonat »

действительно, оплошала ) спасибо
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

Update Точки_по_координатам
Set Obj = CreatePoint( Col1, Col2 )

А здесь нужно задавать какой именно символ, или по умолчанию ставится определенный?
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

Update sector_5
Set Obj = CreatePoint(Lon, Lat)
Symbol(53,RGB(187,187,187),48,CHEYUS,0,0)

Что то не получается задать символ, который меня интересует. Что не так ?
reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение reasonat »

немного наоборот, сначала задать стиль для будущих символов, а потом создавать их

Код: Выделить всё

Set Style Symbol MakeFontSymbol(53,RGB(187,187,187),48,CHEYUS,0,0)
Update sector_5
Set Obj = CreatePoint(Lon, Lat)
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

А название шрифта нужно ставить в кавычки ("Cheyus") или нет? А то мне кажется MI воспринимает шрифт как колонку, и ругается что не определена переменная или поле CHEYUS.
reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Как создать карту в MapBasic

Сообщение reasonat »

да, конечно, название шрифта в кавычках.
в справке MapBasic очень понятно все расписано, проще было там найти :wink:
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

Я не волшебник, я только учусь! :)
cheyus
Новоприбывший
Сообщения: 11
Зарегистрирован: 04 апр 2009, 13:37
Репутация: 0

Re: Как создать карту в MapBasic

Сообщение cheyus »

Теперь нужно повернуть символ на азимут указанный в отдельной колонке. Есть подсказочки? :wink:
Ответить

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

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

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