На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Создание, пересоздание, модификация векторных карт.

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Создание, пересоздание, модификация векторных карт.
 
Специалисты, нужна помощь...

Речь пойдет о создании ПО с использованием MAPAPI.
Есть окно с координатами центра отображения (например х=6140000, у=420000, зона 7) где отображается некая наземная обстановка.
Необходимо отобразить карту (созданную из SXF и RSC) в этом окне (пока это *.MAP), причем возможны различные проекции отображения (ГК, Меркатор, Каврайский, Азимутальная).
Как отобразить готовую карту вопросов не возникает.
Не понятны алгоритмы создания, изменения и пересоздания карт.

Имеются входные данные, а именно:
- ширина и высота окна (в пикселах), где необходимо отображать карту;
- масштаб окна;
- координаты центра отображения наземной обстановки;
- смещение отображения в окне относительно центра отображения наземной обстановки;

На выходе должна быть *.MAP карта.

Я бы хотел что бы меня направили по правильному пути и объяснили:
- как создать MAP-карту из одного и нескольких листов SXF именно под мои исходные данные;
- как заполнять исходные данные для создания карты;
- как и что проверять поэтапно при создания карты.

Я смотрел примеры КБ Панорама, но там вроде нет того что надо мне.
В примерах просто примитивное создание карты. Отображение просто в окно без координат.
А так же много чего с использованием QT-модулей.

Всем спасибо.

Astra Linux 1.6, Gisdesigner 13.
Изменено: Алексей Рылякин - 21.07.2020 09:25:54
 
Цитата
Алексей Рылякин написал:
Специалисты, нужна помощь...
Просьба уточнить в чем вопрос и по какой программе и версии?
 
Цитата
Елена Кузнецова написал:
Цитата
Алексей Рылякин написал:
Специалисты, нужна помощь...
Просьба уточнить в чем вопрос и по какой программе и версии?
Елена, уточнил.
 
Цитата
Алексей Рылякин написал:
Речь пойдет о создании ПО с использованием 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. Как мне отобразить правый нижний угол карты в центре моего окна?
Приведите пример пожалуйста ибо описание этих методов не дает полного представления, для меня точно.
Спасибо.
 
Здравствуйте!

Цитата
Алексей Рылякин написал:
Страница 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), а только того куска , который необходимо?
Изменено: Алексей Рылякин - 23.07.2020 10:54:44
 
Здравствуйте!

Цитата
Алексей Рылякин написал:
Может речь идет о том...Например карта 5000*5000 пикселов и что бы мне отобразить грубо говоря середину карты в окне 400*400, то надо этим методом установить угол в точку с координатами((5000/2-400/2), (5000/2-400/2)).Т.е. мы указываем не левый верхний угол всей карты(основной 5000*5000), а только того куска , который необходимо?
Да, по сути это корректное описание.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2020

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности