Построение точек из Access

MapInfo, MapBasic
Ответить
MArs
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 авг 2013, 01:00
Репутация: 0

Построение точек из Access

Сообщение MArs » 11 май 2016, 12:56

Здравствуйте, есть такая проблема, у меня есть база данных в аццессе с информацией о географических точках и в числе прочего указаны их координаты в полях с типом данных "Текст" и формата градусов с десятичной дробью, каждая координата записана в отдельном столбце. Мне нужно подключить эту базу к мапинфо и построить из этой таблицы точки, а так же настроить построение точек из таблицы результатов запроса. Не можете ли подсказать, как это сделать?

trir
Гуру
Сообщения: 4399
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 806
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Построение точек из Access

Сообщение trir » 11 май 2016, 13:38

мучительно, через программирование
связка Access + MapInfo - плохая идея, проще с MySQl, MS SQL Server, PostGIS

Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Проекты: 1
Репутация: 28
Откуда: Новосибирск

Re: Построение точек из Access

Сообщение Sibit » 11 май 2016, 19:38

В Мапинфо есть стандартная функция - создать точечные объекты. С таблицей Аксесс должна работать так же как и с обычной таблицей.

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Построение точек из Access

Сообщение Boris » 11 май 2016, 22:12

trir писал(а):мучительно, через программирование
связка Access + MapInfo - плохая идея, проще с MySQl, MS SQL Server, PostGIS
Позвольте с вами не согласиться. Все перечисленное вами требует тщательной настройки и не исключаю, что программирования. А вот формат Access является неотличимым от родного (Native) формата MapInfo. В него можно сохранять родные таблицы Mapinfo

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

!table
!version 300
!charset WindowsCyrillic

Definition Table
  Type NATIVE Charset "WindowsCyrillic"
  Fields 1
    cn Char (22) ;
Через "Save Cop As..." в

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

!table
!version 950
!charset WindowsCyrillic

Definition Table
  Type ACCESS TABLE "megred_torzhok_mdb" Charset "WindowsCyrillic"
  Fields 1
    cn Char (22) ;
и получим в результате таблицу не отличимую от обычной, только не будет в комплекте файла DAT, все остальные: MAP,TAB,ID,aid - будут.
А как сказано выше в ответе Sibit геоинформацию в MapInfo для точек можно прикрутить к любой открытой Mapinfo таблице - хоть Access, хоть Excel, хоть CSV/TXT, в общем к любой. Что надо признать предельно удобно: атрибутику заполняете в том, в чем любите, а геометрию делаете в MapInfo.

trir
Гуру
Сообщения: 4399
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 806
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Построение точек из Access

Сообщение trir » 12 май 2016, 07:53

речь про геометрию, а не атрибуты - как хранить геометрию в Access?

MArs
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 авг 2013, 01:00
Репутация: 0

Re: Построение точек из Access

Сообщение MArs » 12 май 2016, 14:15

Спасибо за ответы, нашел способ с импортом таблиц и результатов запросов в excel и в дальнейшем построение точек уже с экселевской таблицы, для автоматизации еще можно будет присовокупить программу на МБ для автоматического построение точечных объектов и геолинка.

MArs
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 авг 2013, 01:00
Репутация: 0

Re: Построение точек из Access

Сообщение MArs » 12 май 2016, 14:19

Sibit писал(а):В Мапинфо есть стандартная функция - создать точечные объекты. С таблицей Аксесс должна работать так же как и с обычной таблицей.
Спасибо

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Построение точек из Access

Сообщение Boris » 12 май 2016, 15:44

trir писал(а):речь про геометрию, а не атрибуты - как хранить геометрию в Access?
Во-первых, автор ни словом не обмолвился о необходимости хранить геометрию внутри БД. Он сказал, что она у него уже там есть.
2. Для точек и это MapInfo умеет. Согласно документации - я не пробовал.
3. Задача оказалась немного другой, согласно окончанию темы - в построении выборок. Вот это я бы сделал через OGR, но это уже дело вкуса и привычки.
4. Раз речь потом пошла об Excel и его хватило, то, IMHO, поднимать для это гео-сервер - избыточная работа.

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Построение точек из Access

Сообщение Boris » 12 май 2016, 15:56

MArs писал(а):Спасибо за ответы, нашел способ с импортом таблиц и результатов запросов в excel и в дальнейшем построение точек уже с экселевской таблицы, для автоматизации еще можно будет присовокупить программу на МБ для автоматического построение точечных объектов и геолинка.
Я так понимаю, что задачу вы уже решили, но я так и не понял, что именно было задачей. На будущее - не стесняйтесь писать много букв. Чем больше букв - тем конкретней ответы.
И если можно, мне, для общего развития, помогите понять, чем не устроило стандартное решение такой задачи в 3 хода и все в MapInfo:
  • открыть таблицу с X,Y в MapInfo. Типов данных, которые MI умеет открывать - очень много. В настройках таблицы указать, что она будет гео-таблицей и задать систему координат.
  • геокодировать точки стандартной функцией или запросом на обновление или, ХЗ зачем, программой на MB. В общем получить точечные геообъекты прочно связанные с этой конкретной таблицей.
  • выполнить запрос средствами MapInfo. SQL в MapInfo победнее, чем в Access, но для большинства задач на одной таблице его хватает на 98%.
п.2 можно повторять бесконечно по мере изменения данных в Access. п.3 можно записать в рабочий набор или сохранить в тестовый файл QRY и использовать неоднократно. К чему такие обходные пути через Excel или иные промежуточные таблицы?

MArs
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 авг 2013, 01:00
Репутация: 0

Re: Построение точек из Access

Сообщение MArs » 13 май 2016, 00:18

Boris писал(а): И если можно, мне, для общего развития, помогите понять, чем не устроило стандартное решение такой задачи в 3 хода и все в MapInfo:
  • открыть таблицу с X,Y в MapInfo. Типов данных, которые MI умеет открывать - очень много. В настройках таблицы указать, что она будет гео-таблицей и задать систему координат.
  • геокодировать точки стандартной функцией или запросом на обновление или, ХЗ зачем, программой на MB. В общем получить точечные геообъекты прочно связанные с этой конкретной таблицей.
  • выполнить запрос средствами MapInfo. SQL в MapInfo победнее, чем в Access, но для большинства задач на одной таблице его хватает на 98%.
п.2 можно повторять бесконечно по мере изменения данных в Access. п.3 можно записать в рабочий набор или сохранить в тестовый файл QRY и использовать неоднократно. К чему такие обходные пути через Excel или иные промежуточные таблицы?
Дело в настроенной выборке в самой базе, непосредственно все работы будут осуществляться в ней и запросы в ней написаны с большим трудом для нужного функционала, а перенос результатов на карту необходим как дополнение, поэтому необходим был способ, который позволил бы использовать запросы из базы и на основе их данных уже делать геокодирование. А так как пытаюсь сделать максимально автоматизированную систему, то хочу настроить всё так, чтобы пользователю не пришлось разбираться с функциями аццесса или ми, а он просто видел перед собой кнопки для получения нужный данных, их экспорта в нужный формат, построения на карте, отчета с картой и т.д.

А как сделать геокодирование через запрос на обновление?

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Построение точек из Access

Сообщение Boris » 13 май 2016, 00:35

Тут у вас полноценная работа, а вместо описания процесса или задачи одни мысли в слух.
Оператор работает в чем? Что в вашем понимании выборка и где она производится? Почему в том месте где выборка производится она не может быть сохранена в таблицу с фиксированным именем? И т.д. и т.п.
Вы же не думаете, что вы первый кто автоматизирует работу с геоинформацией, привязанной к базе Access? Это делали еще лет 20 назад в Access 97, и это уже как лет 10 вышло из моды, поскольку массово появились не очень тяжелые SQL серверы, оперирующие ГИС данными.
Для ответа на вопрос надо сперва понять запрос - это запрос где или запрос чего. Если это MI, то там это делается через команду MB так:

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

Update table1 set Obj=CreatePoint(X,Y)
PS
Не хотите светить работу - можете написать мне в ЛС. Но, если вам без разницы, то по мне - интересней когда описание и решение задачи остается в открытом доступе.

Ответить

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

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

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