Деление карты mapinfo на квадраты

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
ИванПрограммист
Новоприбывший
Сообщения: 3
Зарегистрирован: 20 фев 2016, 19:12
Репутация: 0

Деление карты mapinfo на квадраты

Сообщение ИванПрограммист »

Здравствуйте!

Есть огромная карта города на mapinfo. Есть пользователи, каждый из которых (пока что) видит всю карту целиком.

Необходимо сделать так, чтобы каждый пользователь мог видеть только свой "рабочий" фрагмент (квадрат) карты.

Важно сделать это, не нарушая целостности карты (не разрезая ее на отдельные файлы-квадраты).

Первая мысль, которая пришла в голову: прописать в рабочем наборе координаты отображаемой области.

Искал в справке, нашел параметр Clipping для SET MAP (в шапке файла рабочего набора). Не знаю, оно-не оно, руководство пользователя очень немногословно. Поиск в Яндексе/Гугле тоже ничего не дал (может, я пропустил).

Уважаемые спецы, подскажите, пожалуйста, есть ли какой-нибудь способ задать в рабочем наборе, чтобы пользователю показывалась лишь определенная часть карты, и не показывалась вся остальная карта?

Если это нельзя сделать в рабочем наборе, то как еще можно сделать?

Спасибо!

UPD: Пользователи редактируют данные. Рисовать не рисуют, но свойства объектов заполняют.
Последний раз редактировалось ИванПрограммист 20 фев 2016, 20:13, всего редактировалось 1 раз.
trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Деление карты mapinfo на квадраты

Сообщение trir »

Ключевой вопрос - редактируют ли эти пользователи эти данные?
А так - раздавать пользователям данные через представления с ограничениями
ИванПрограммист
Новоприбывший
Сообщения: 3
Зарегистрирован: 20 фев 2016, 19:12
Репутация: 0

Re: Деление карты mapinfo на квадраты

Сообщение ИванПрограммист »

trir писал(а):Ключевой вопрос - редактируют ли эти пользователи эти данные?
А так - раздавать пользователям данные через представления с ограничениями
Редактируют.

Рисовать не рисуют, но свойства объектов заполняют.

Пожалуйста, расскажите немного подробнее про представления с ограничениями.
trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Деление карты mapinfo на квадраты

Сообщение trir »

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Деление карты mapinfo на квадраты

Сообщение Boris »

Во-первых, это мапинфо, а вы хотите от нее функционал навороченного ГИС-сервера. Если у вас данные в простых таблицах Mapinfo, а не на сервере, то все ваши потуги будут сметены одним движением руки "продвинутого пользователя".
Что бы реализовать ваши желания, надо еще и отключить часть меню пользователям, т.к. кнопка "Set Map Clipping Object " находится в стандартном наборе.
Дальше вы можете реализовать два подхода или их комбинацию:
1. надо ограничить физический вывод объектов на карту - это следует сделать для каждого (редактируемого?) слоя, выводимого в окно карты. Через SQL запрос "Overlap" или "Intersect";
2. ограничить видимую область через Clipping. Для задания области "Clipping" необходимо указать переменную типа Region. Как то вот так:

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

Set CoordSys Earth Projection 1, 0
Dim TempClipObject As Object
Create Region Into Variable TempClipObject  1
  5
(-0.372694,0.819188)
(-0.350554,-1.055351)
(1.837638,-1.04797)
(1.830258,0.782288)
(-0.372694,0.819188)
    Pen (1,2,8388863) 
    Brush (1,0,16777215)
    Center (0.732472,-0.118081)
Set Map Clipping Object TempClipObject
UnDim TempClipObject
В любом случае, решение задачи требует либо "ручного" редактирования всех возможных рабочих наборов, либо создания специальной программы, которая будет заполнять рабочий набор для каждого пользователя.
Не плохо будет закрыть рабочий набор для редактирования, превратив его в read-only для пользователей. Кроме того потребуется:
а) открывать все таблицы, не запросы, с атрибутом Hidden;
б) скрыть практически все меню и кнопки;
поскольку, если пользователь сумеет получить имя основной таблицы, на которой построен запрос, или доступ к инструменту "Clipping" или к возможности открывать новое окно, ил доступ к окну MapBasic, все ваши запреты будут ему даже не видны.
ИванПрограммист
Новоприбывший
Сообщения: 3
Зарегистрирован: 20 фев 2016, 19:12
Репутация: 0

Re: Деление карты mapinfo на квадраты

Сообщение ИванПрограммист »

Спасибо! Буду пробовать...
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Деление карты mapinfo на квадраты

Сообщение Boris »

В завершение темы, да и перебирание архивов, напомнили:
Если у вас много атрибутивных данных или они вам важны, то имеет смысл создать "родную" таблицу Mapinfo, в которой атрибутика хранится в файле MDB (СУБД Access). Создается такая таблица через "сохранить как..." и выбрать MS Access. У это есть плюсы:
1) данные хранятся в настольной СУБД. Это немного повышает надежность хранения и с объемами Access работает лучше. К тому же в случае необходимости можно анализировать атрибутивные или производные(площадь, положение) поля через запросы в Access. Там же и строить выходные отчеты и т.п. гораздо проще;
2) можно выполнять расширенную автоматизацию процесса - формочки, каталоги, классификаторы и т.п.
3) часть данных, которые требуют "голой" атрибутики, и не требуют того, что бы оператор обязательно видел карту, как правило таких 80%, можно заносить через MS Access. Там это на один-два порядка делается и быстрее и проще.
С точки зрения mapInfo такая таблица ничем не отличается от обычных таблиц - она в ней проходит как "Native".
Ответить

Вернуться в «Я новичок!»

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

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