Форум картографов, карты MapInfo, Google maps

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум картографов, карты MapInfo, Google maps » MapBasic » Библиотека для работы с MapInfo на .NET (c#)


Библиотека для работы с MapInfo на .NET (c#)

Сообщений 1 страница 9 из 9

1

Месяц назад мне пришлось делать поддержку карт MapInfo для существующей программы, активно использующей растровые изображения в качестве карт.
С помощью нескольких замечательных людей (в т.ч. с этого ресурса), мне удалось быстро реализовать поддержку MapInfo.
По ходу написания, я вынес весь код взаимодействия на MapBasic в отдельную сборку, которую и представляю сейчас.

Кому интересно - смотрите подробнее в моем блоге:
http://dragonfire.cimanu.ru/

По всем вопросам можно обращаться ко мне через блог или по ICQ 337694470

З.Ы. Не сочтите пост рекламой :) Мало-ли кому пригодиться...

2

А какие задачи решает эта программа?

3

В блоге все написано...

Что может библиотека

    * Создавать сервер-приложение MapInfo или подключатся к запущенному процессу.
    * Работать с картами в окне программы, или в среде MapInfo.
    * Открывать карты из файлов, управлять уже открытыми картами:
          o Получать/устанавливать параметры карты: еденицы измерения, масштаб, область видимости;
          o Управлять количеством карт;
          o Закрывать, обновлять, помещать поверх других и изменять размер окон с картами;
          o Добавлять к карте новые слои.
    * Получать/устанавливать параметры текущей сессии.
    * Работать с таблицами:
          o Открывать, закрывать таблицы;
          o Читать данные любые из таблиц, в т.ч. информацию о столбцах;
          o Рисовать граффические объекты в таблицах и косметическом слое карт:
          o Точки, в т.ч. специальные символы;
          o Линейные объекты: линии, дуги, полилинии;
          o Площадные объекты: круги, эллипсы, прямоугольники, произвольные области.
    * Получать обратные вызовы (CallBack) от MapInfo.
    * Создавать/изменять/управлять пользовательскими панелями инструментов и меню.
    * Обращатmся непосредственно к MapInfo на языке MapBasic и получать типизированные данные: Int32, Double, String.
    * Получение информации по слоям карты

Что в планах

    * Механизм различных запросов к MapInfo на языке, аналогичном SQL:
          o Выборки из таблиц
          o Получение суммарной информации по таблицам
    * Механизм поиска объектов на карте
    * Поддержка текста
    * Поддержка меток в слоях
    * Исправление багов Улыбаюсь

4

А какая от этого практическая ценность, т.е. что я могу сделать такого, чего не мог бы сделать непосредственно в МапИнфо? какие новые возможности открывает для пользователя эта программа?

5

Напишите, пожалуйста, возможные примеры применения, оч интересно

6

Практическое использование - интегрированная картография. Когда в какой либо части информационной системы необходимо внедрить поддержку карт MapInfo.

7

на машине обязательно должна стоять MapInfo? Видимо используются какие-то её библиотеки? Возможно ли их "вырезать" и включить в состав самого cimanu, чтоб не зависеть от MapInfo ?

8

Ссылка не работает. Подскажите плиз где можно достать эту либу. Если еще можно.

9

Может не по адресу, но точно помню, кто-то искал скрипты, не уаляйте, поди пригодятся)
Он координаты линий определяет посредством кнопочки, но нужно для начала таблицу открыть нужную, а то нечего будет определять))

include "mapbasic.def"

declare sub main

type nodelist
  fltx as float
  flty as float
end type

sub main

dim objSel as object
dim intRow,intCounter,intNumNodes,intCounter2,intFWin, intNumpoly as integer
dim fltBegx,fltBegy,fltEndx,fltEndy as float
dim logFirstRow,intFirstRow as logical
dim nlist(1) as nodelist
dim strTabname,strLname as string
dim i as integer

  intRow = SelectionInfo(sel_info_nrows)
  if intRow = 0 then
    note "No lines were selected."
  end if
  intFirstRow = True
  intFWin = FrontWindow()
  strLname = LayerInfo(intFWin,0,layer_info_name)
  for i = 1 to intRow
    if intFirstRow = True then
      fetch first from selection
    else
      fetch next from selection
    end if
    objSel = selection.obj
    for intNumpoly = 1 To ObjectInfo(objSel, OBJ_INFO_NPOLYGONS)
    intNumNodes = ObjectInfo(objSel,obj_info_npolygons+intNumpoly)
      redim nlist(intNumNodes)
      for intCounter2 = 1 to intNumNodes
'Array is populated with Longitude a nd Latitude coordinates.
nlist(intCounter2).fltx = ObjectNodeX(objSel,intNumpoly,intCounter2)
   nlist(intCounter2).flty = ObjectNodeY(objSel,intNumpoly,intCounter2)
print "x="+nlist(intCOunter2).fltx+"y="+nlist(intCounter2).flty
        insert into strLname (obj)
   values(CreatePoint(nlist(intCounter2).fltx,
   nlist(intCounter2).flty))
      next
    next
    logFirstRow = False
  next
end sub


Вы здесь » Форум картографов, карты MapInfo, Google maps » MapBasic » Библиотека для работы с MapInfo на .NET (c#)