Деление карты mapinfo на квадраты
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 20 фев 2016, 19:12
- Репутация: 0
Деление карты mapinfo на квадраты
Здравствуйте!
Есть огромная карта города на mapinfo. Есть пользователи, каждый из которых (пока что) видит всю карту целиком.
Необходимо сделать так, чтобы каждый пользователь мог видеть только свой "рабочий" фрагмент (квадрат) карты.
Важно сделать это, не нарушая целостности карты (не разрезая ее на отдельные файлы-квадраты).
Первая мысль, которая пришла в голову: прописать в рабочем наборе координаты отображаемой области.
Искал в справке, нашел параметр Clipping для SET MAP (в шапке файла рабочего набора). Не знаю, оно-не оно, руководство пользователя очень немногословно. Поиск в Яндексе/Гугле тоже ничего не дал (может, я пропустил).
Уважаемые спецы, подскажите, пожалуйста, есть ли какой-нибудь способ задать в рабочем наборе, чтобы пользователю показывалась лишь определенная часть карты, и не показывалась вся остальная карта?
Если это нельзя сделать в рабочем наборе, то как еще можно сделать?
Спасибо!
UPD: Пользователи редактируют данные. Рисовать не рисуют, но свойства объектов заполняют.
Есть огромная карта города на mapinfo. Есть пользователи, каждый из которых (пока что) видит всю карту целиком.
Необходимо сделать так, чтобы каждый пользователь мог видеть только свой "рабочий" фрагмент (квадрат) карты.
Важно сделать это, не нарушая целостности карты (не разрезая ее на отдельные файлы-квадраты).
Первая мысль, которая пришла в голову: прописать в рабочем наборе координаты отображаемой области.
Искал в справке, нашел параметр Clipping для SET MAP (в шапке файла рабочего набора). Не знаю, оно-не оно, руководство пользователя очень немногословно. Поиск в Яндексе/Гугле тоже ничего не дал (может, я пропустил).
Уважаемые спецы, подскажите, пожалуйста, есть ли какой-нибудь способ задать в рабочем наборе, чтобы пользователю показывалась лишь определенная часть карты, и не показывалась вся остальная карта?
Если это нельзя сделать в рабочем наборе, то как еще можно сделать?
Спасибо!
UPD: Пользователи редактируют данные. Рисовать не рисуют, но свойства объектов заполняют.
Последний раз редактировалось ИванПрограммист 20 фев 2016, 20:13, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Деление карты mapinfo на квадраты
Ключевой вопрос - редактируют ли эти пользователи эти данные?
А так - раздавать пользователям данные через представления с ограничениями
А так - раздавать пользователям данные через представления с ограничениями
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 20 фев 2016, 19:12
- Репутация: 0
Re: Деление карты mapinfo на квадраты
Редактируют.trir писал(а):Ключевой вопрос - редактируют ли эти пользователи эти данные?
А так - раздавать пользователям данные через представления с ограничениями
Рисовать не рисуют, но свойства объектов заполняют.
Пожалуйста, расскажите немного подробнее про представления с ограничениями.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Деление карты mapinfo на квадраты
Во-первых, это мапинфо, а вы хотите от нее функционал навороченного ГИС-сервера. Если у вас данные в простых таблицах Mapinfo, а не на сервере, то все ваши потуги будут сметены одним движением руки "продвинутого пользователя".
Что бы реализовать ваши желания, надо еще и отключить часть меню пользователям, т.к. кнопка "Set Map Clipping Object " находится в стандартном наборе.
Дальше вы можете реализовать два подхода или их комбинацию:
1. надо ограничить физический вывод объектов на карту - это следует сделать для каждого (редактируемого?) слоя, выводимого в окно карты. Через SQL запрос "Overlap" или "Intersect";
2. ограничить видимую область через Clipping. Для задания области "Clipping" необходимо указать переменную типа Region. Как то вот так:
В любом случае, решение задачи требует либо "ручного" редактирования всех возможных рабочих наборов, либо создания специальной программы, которая будет заполнять рабочий набор для каждого пользователя.
Не плохо будет закрыть рабочий набор для редактирования, превратив его в read-only для пользователей. Кроме того потребуется:
а) открывать все таблицы, не запросы, с атрибутом Hidden;
б) скрыть практически все меню и кнопки;
поскольку, если пользователь сумеет получить имя основной таблицы, на которой построен запрос, или доступ к инструменту "Clipping" или к возможности открывать новое окно, ил доступ к окну MapBasic, все ваши запреты будут ему даже не видны.
Что бы реализовать ваши желания, надо еще и отключить часть меню пользователям, т.к. кнопка "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 на квадраты
Спасибо! Буду пробовать...
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Деление карты mapinfo на квадраты
В завершение темы, да и перебирание архивов, напомнили:
Если у вас много атрибутивных данных или они вам важны, то имеет смысл создать "родную" таблицу Mapinfo, в которой атрибутика хранится в файле MDB (СУБД Access). Создается такая таблица через "сохранить как..." и выбрать MS Access. У это есть плюсы:
1) данные хранятся в настольной СУБД. Это немного повышает надежность хранения и с объемами Access работает лучше. К тому же в случае необходимости можно анализировать атрибутивные или производные(площадь, положение) поля через запросы в Access. Там же и строить выходные отчеты и т.п. гораздо проще;
2) можно выполнять расширенную автоматизацию процесса - формочки, каталоги, классификаторы и т.п.
3) часть данных, которые требуют "голой" атрибутики, и не требуют того, что бы оператор обязательно видел карту, как правило таких 80%, можно заносить через MS Access. Там это на один-два порядка делается и быстрее и проще.
С точки зрения mapInfo такая таблица ничем не отличается от обычных таблиц - она в ней проходит как "Native".
Если у вас много атрибутивных данных или они вам важны, то имеет смысл создать "родную" таблицу Mapinfo, в которой атрибутика хранится в файле MDB (СУБД Access). Создается такая таблица через "сохранить как..." и выбрать MS Access. У это есть плюсы:
1) данные хранятся в настольной СУБД. Это немного повышает надежность хранения и с объемами Access работает лучше. К тому же в случае необходимости можно анализировать атрибутивные или производные(площадь, положение) поля через запросы в Access. Там же и строить выходные отчеты и т.п. гораздо проще;
2) можно выполнять расширенную автоматизацию процесса - формочки, каталоги, классификаторы и т.п.
3) часть данных, которые требуют "голой" атрибутики, и не требуют того, что бы оператор обязательно видел карту, как правило таких 80%, можно заносить через MS Access. Там это на один-два порядка делается и быстрее и проще.
С точки зрения mapInfo такая таблица ничем не отличается от обычных таблиц - она в ней проходит как "Native".
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей