Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 6:42 am Заголовок сообщения: Установка проекции по умолчанию |
|
|
Привет всем.
Не могу побороть такой момент.
В МИ по умолчанию стоит проекция Долгота/Широта. Я хочу установить проекцию как в окне.
Если я делаю команду в МИ из окна MapBasic - Set CoordSys Window FrontWindow(), то все работает прекрасно и проекция по умолчанию меняется.
А вот из своего приложения я эту проекцию поменять не могу. Что только не пробовал:
Set CoordSys Window FrontWindow()
Run Command "Set CoordSys Window FrontWindow()"
из своей dll через OLE оба верхних варианта
и даже пробовал сохранять команды в рабочий набор и открывать его через Run Application.
Итог - меняет только в моем сеансе программы.
А как поменять программно именно глобальную проекцию в самом МИ? |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пт Окт 01, 2010 10:51 am Заголовок сообщения: |
|
|
поменяйте программно в файле %$APPDATA%\MapInfo\MapInfo\MAPINFOW.PRF строки
CoordSys Earth Projection 1, 0
на строки
CoordSys NonEarth Units "m" Bounds (0, 0) (20000000, 20000000)
bounds вставляйте ваши
только количество заменяемых символов в файле, я так понимаю, должно совпадать с количеством вставляемых, иначе другие настройки собьются.
Или скажите мне, что это за формат файла, чем его редактировать |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 11:02 am Заголовок сообщения: |
|
|
2 reasonat
я спрашиваю про программную реализацию
руками я могу и в окне MapBasic команду ввести
этот файл МИ грузит в диалоге выбора проекции, а мне нужно в процессе работы это значение менять
Последний раз редактировалось: Alex_Y (Пт Окт 01, 2010 11:11 am), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 11:08 am Заголовок сообщения: |
|
|
2 reasonat
наверное, имелся ввиду файл mapinfow.prj, т.к. у prf вообще бинарный формат?
то это не поможет, это выбор проекции карты, на проекцию по умолчанию такое изменение не повлияет |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пт Окт 01, 2010 11:11 am Заголовок сообщения: |
|
|
нет, именно PRF и именно в персональных Application Data. Да, бинарный.
В процессе он не прочитается. Только при загрузке MI.
Если отловите события по выбору кнопок в диалогах MI, вперед
А через мапбейсик эти настройки не правятся. |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 11:14 am Заголовок сообщения: |
|
|
проверил, при вводе команды
set coordsys window Frontwindow()
значение этого файла не меняется, так что, увы, этот вариант тоже не проходит
да, похоже что никак |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пт Окт 01, 2010 11:28 am Заголовок сообщения: |
|
|
проверьте при выборе настроек карты в меню Настройки
а у вас какая версия? |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 11:34 am Заголовок сообщения: |
|
|
>проверьте при выборе настроек карты в меню Настройки
это тоже не поможет, в настройках ставятся значения по умолчанию при запуске МИ
>а у вас какая версия?
8,5
>Если отловите события по выбору кнопок в диалогах MI, вперед
это как раз решаемо, не мапбейсиком конечно, и не сходу, но решаемо
только толку от этого не будет, мне именно программно менять надо
А именно, пишу диалог (точнее написал и походу зря), который бы менял это значение, а также значения площадей и расстояний.
Нужно для того, чтобы при использовании в команде Обновить колонку операторов типа CentroidX, значения вставлялись из нужной проекции. А они используют значение по умолчанию. Вот. :) |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пт Окт 01, 2010 11:45 am Заголовок сообщения: |
|
|
если программно задать в программе, то на время работы программы set coordsys поможет. Разве что следить, чтоб другие утилиты или пользователь не поменяли проекцию под себя. А если навсегда в MI проекцию по-умолчанию поменять, то это только через файл правил |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Окт 01, 2010 12:47 pm Заголовок сообщения: |
|
|
это помогает только локально в программе
если в программе я сделаю запрос Update tab Set Col1 = CentroidX(obj), то в нем это сработает и координата получится правильная
если я сделаю тот же запрос в окне MapBasic или командой Обновить колонку, то берется проекция по умолчанию, вот в чем проблема.
мне не надо ее менять навсегда, мне нужно установить свою из программы, глобально, для всех команд МИ а не только для своих |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пн Окт 04, 2010 7:09 am Заголовок сообщения: |
|
|
В общем, через задний проход, но таки побелил я ее.
Всем спасибо, тема закрыта. |
|
Вернуться к началу |
|
|
|