Речь пойдет о создании ПО с использованием MAPAPI. Есть окно с координатами центра отображения (например х=6140000, у=420000, зона 7) где отображается некая наземная обстановка. Необходимо отобразить карту (созданную из SXF и RSC) в этом окне (пока это *.MAP), причем возможны различные проекции отображения (ГК, Меркатор, Каврайский, Азимутальная). Как отобразить готовую карту вопросов не возникает. Не понятны алгоритмы создания, изменения и пересоздания карт.
Имеются входные данные, а именно: - ширина и высота окна (в пикселах), где необходимо отображать карту; - масштаб окна; - координаты центра отображения наземной обстановки; - смещение отображения в окне относительно центра отображения наземной обстановки;
На выходе должна быть *.MAP карта.
Я бы хотел что бы меня направили по правильному пути и объяснили: - как создать MAP-карту из одного и нескольких листов SXF именно под мои исходные данные; - как заполнять исходные данные для создания карты; - как и что проверять поэтапно при создания карты.
Я смотрел примеры КБ Панорама, но там вроде нет того что надо мне. В примерах просто примитивное создание карты. Отображение просто в окно без координат. А так же много чего с использованием QT-модулей.
Алексей Рылякин написал: Речь пойдет о создании ПО с использованием MAPAPI.Есть окно с координатами центра отображения (например х=6140000, у=420000, зона 7) где отображается некая наземная обстановка.Необходимо отобразить карту (созданную из SXF и RSC) в этом окне (пока это *.MAP), причем возможны различные проекции отображения (ГК, Меркатор, Каврайский, Азимутальная).Как отобразить готовую карту вопросов не возникает.Не понятны алгоритмы создания, изменения и пересоздания карт.
Предлагаем воспользоваться технической документацией ПРОГРАММНОЕ ИЗДЕЛИЕ ГИС КОНСТРУКТОР ГЕОИНФОРМАЦИОННЫХ СИСТЕМ (ГИС Конструктор для Qt Designer). Руководство программиста. http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf 3.6 Описание применения функций интерфейса «MAPAPI»
Алексей Рылякин написал: Речь пойдет о создании ПО с использованием MAPAPI.Есть окно с координатами центра отображения (например х=6140000, у=420000, зона 7) где отображается некая наземная обстановка.Необходимо отобразить карту (созданную из SXF и RSC) в этом окне (пока это *.MAP), причем возможны различные проекции отображения (ГК, Меркатор, Каврайский, Азимутальная).Как отобразить готовую карту вопросов не возникает.Не понятны алгоритмы создания, изменения и пересоздания карт.
Предлагаем воспользоваться технической документацией ПРОГРАММНОЕ ИЗДЕЛИЕ ГИС КОНСТРУКТОР ГЕОИНФОРМАЦИОННЫХ СИСТЕМ (ГИС Конструктор для Qt Designer). Руководство программиста. http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf 3.6 Описание применения функций интерфейса «MAPAPI»
Если останутся вопросы, ответим.
Страница 46 и 49 опечатка в методе void GeMaptLeftTop(int left, int top) , Get.
Вопрос по методам void GetMaptLeftTop(int left, int top) и void SetMapLeftTop(int left, int top) в компоненте QDMapView и QDMapWindow. Что именно делает SET? Например карта больше чем окно в котором его надо отобразить, куда именно мне надо установить верхний левый угол карты? Пусть карта 10000*10000 пикселов, а окно для отображения карты 600*600. Как мне отобразить правый нижний угол карты в центре моего окна? Приведите пример пожалуйста ибо описание этих методов не дает полного представления, для меня точно. Спасибо.
Astra Linux Special Edition 1.6 релиз «Смоленск»/ГИС Конструктор МО РФ
Алексей Рылякин написал: Страница 46 и 49 опечатка в методе void GeMaptLeftTop(int left, int top) , Get.
Спасибо - исправим.
Цитата
Алексей Рылякин написал: Приведите пример пожалуйста ибо описание этих методов не дает полного представления
Метод QDMapView::SetMapLeftTop() служит для установки положения левого верхнего угла карты в окне. Это чаще всего необходимо из-за того, что при крупном масштабе отображения карта может занимать большой размер (например, 4000х4000 пикселей), в то время как текущий размер окна просмотра может быть 600х600 пикселей.
Наглядно это можно посмотреть в примере findbycoord из состава инсталляции. Для этого после запуска примера необходимо выбрать пункт меню "Переход"->"В точку" - и карта сместится в заранее определенное положение. Данное поведение реализовано в данном примере в функции MainForm1::FindByPoint_activated() с помощью функции QDMapView::SetMapLeftTop().
Александр Савелов написал: Наглядно это можно посмотреть в примере findbycoord из состава инсталляции. Для этого после запуска примера необходимо выбрать пункт меню "Переход"->"В точку" - и карта сместится в заранее определенное положение.Данное поведение реализовано в данном примере в функции MainForm1::FindByPoint_activated() с помощью функции QDMapView::SetMapLeftTop().
Александр, не понимаю все равно как это работает... Почему при QDMapView::SetMapLeftTop(0, 0) левый верхний угол карты не перемещается в точку с координатами (0,0)? Или QDMapView::SetMapLeftTop(100,500) в точку с координатами (100,500)? В описании метода написано одно (устанавливает левый верхний угол карты в точку с координатами), а по факту другое. Где я не понимаю?
Может речь идет о том...Например карта 5000*5000 пикселов и что бы мне отобразить грубо говоря середину карты в окне 400*400, то надо этим методом установить угол в точку с координатами ((5000/2-400/2), (5000/2-400/2)). Т.е. мы указываем не левый верхний угол всей карты(основной 5000*5000), а только того куска , который необходимо?
Алексей Рылякин написал: Может речь идет о том...Например карта 5000*5000 пикселов и что бы мне отобразить грубо говоря середину карты в окне 400*400, то надо этим методом установить угол в точку с координатами((5000/2-400/2), (5000/2-400/2)).Т.е. мы указываем не левый верхний угол всей карты(основной 5000*5000), а только того куска , который необходимо?