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

Габариты пользовательской карты

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

Подскажите пожалуйста. Как задать габариты пользовательской карты такие же, как и основной карты?

Создаю пользовательскую карту так:
Код
        MAPREGISTER map_reg;
        LISTREGISTER list_reg;
        if (mapGetMapInfo(m_baseMapHandler, 1, &map_reg, &list_reg)) {
            cs.MapType = map_reg.MapType;
            cs.Scale = map_reg.Scale;
            cs.MaterialProjection = map_reg.MaterialProjection;
            cs.FirstMainParallel = map_reg.FirstMainParallel;
            cs.SecondMainParallel = map_reg.SecondMainParallel;
            cs.AxisMeridian = map_reg.AxisMeridian;
            cs.MainPointParallel = map_reg.MainPointParallel;
            cs.EllipsoideKind = map_reg.EllipsoideKind;
            cs.MapType = map_reg.MapType;
            cs.MaterialProjection = map_reg.MaterialProjection;
        } else {
            qDebug() << Q_FUNC_INFO << "Не удалось получить информацию о карте";
        }

        wcscpy(cs.MapName, ushortToWChar(QString("My map").utf16()));
        hmap = mapCreateAndAppendSiteUn(m_baseMapHandler, ushortToWChar(siteName.utf16()),
                                 ushortToWChar(rscFileName.utf16()), &cs);


// по идее надо использовать ist_reg, но как, пока не пойму. 

Но габариты у них получаются разные. И почему-то при добавлении некоторых линейных и площадных объектов карта "съезжает" и габариты пользовательской карты расширяются. А я хочу, чтобы они были фиксированными и равны габаритам основной карты.

Спасибо.
 
Приветствую!

"Пользовательская векторная карта состоит только из одного листа карты, который не имеет постоянных  размеров.  При  добавлении  или  удалении  объектов  его  габариты  и  расположение будут  меняться." (mapapi.pdf)

Какие габариты и для каких целей Вы хотите "зафиксировать"?

С уважением,
Матвеев П.В.
 
Цитата
Павел Матвеев написал:
Какие габариты и для каких целей Вы хотите "зафиксировать"?
Спасибо. Я хочу, чтобы размеры картинки карты в пикселях на каждом базовом масштабе были постоянными на всем протяжении работы программы.
 
Приветствую!

Можно создать объект - рамку на пользовательской карте и не разрешать создавать объекты за этой рамкой. тогда в 99% случаев габариты карты не изменятся.

С уважением,
Матвеев П.В.
 
Цитата
Павел Матвеев написал:
Можно создать объект - рамку на пользовательской карте и не разрешать создавать объекты за этой рамкой. тогда в 99% случаев габариты карты не изменятся.
Доброе утро всем.
Попробовал воспользоваться вашим советом. Но что-то при попытке создать рамку и закоммитить ее на пользовательской карте вылетает приложение. Вот пример кода:
Код
HOBJ info = mapCreateSiteObject(m_baseMapHandler, sitHandler);
mapCreateListFrameObject(sitHandler, 1, info);
//        mapCommitObject(info); при этом вызове происходит вылет
mapFreeObject(info);
Я предполагаю, что я не задаю какие-то границы. Но если это так, то как определеить эти границы из основной карте и задать из для создаваемой пользовательской рамки?

Спасибо.
 
Здравствуйте!

Цитата
Сергей написал:
Спасибо. Я хочу, чтобы размеры картинки карты в пикселях на каждом базовом масштабе были постоянными на всем протяжении работы программы.
Возможно, Вам поможет ответ, данный в этой ветке форума: http://gisweb.ru/forum/forum7/10284-zum-dlya-vidimosti-vybrannogo-spiska-obektov
 
Приветствую!

Я не про mapCreateListFrameObject ))
Создайте обычный объект на пользовательской карте, заполните его метрику так, чтобы задать желаемые границы и сохраните. И в дальнейшем проверяйте метрику создаваемых на карте объектов чтобы не выйти за границы объекта - рамки и не "растянуть" пользовательскую карту.

С уважением,
Матвеев П.В.
 
Цитата
Александр Савелов написал:
Возможно, Вам поможет ответ, данный в этой ветке форума:  http://gisweb.ru/forum/forum7/10284-zum-dlya-vidimosti-vybrannogo-spiska-obektov
Здравствуйте. Спасибо. но это не то.

Проблема заключается в следующем и возникает в некоторых случаях, когда наношу линейные или площадные объекты:
1. создаю пользовательскую карту, как описывал выше и добавляю ее к основной карте;
2. Наношу линейный объект(не знаю, почему он линейный, хотя в классификаторе визуально замкнут), например, кликами добавляю точки:
2.1. после первого клика в метрику добавляю одну точку;
2.2 после второго клика в метрику добавляю вторую точку и после этого в метрике уже содержится 3 точки - вторая - моя, 3-я - 1 метрика; (на картинке вижу линию(фигуру), соединяющую 1 и 2 метрику);
2.3 после третьего клика габариты пользовательской карты почему-то резко увеличиваются и моя 3-я точка почему-то "улетает" не туда. Размер пользовательской карты становится значительно больше самой карты, а у меня клиент написан так, что я габариты карты считаю фиксированными.
     после этого считываю метрику и вижу следующее, что вместо 3 точек их становится 5: 1-2-1-3-1. Но это происходит не для всех линейных объектов, поэтому не понимаю, как это можно решить.

Если это можно как-то решить, задавая фиксированный размер пользовательской карты, то буду благодарен примеру, как его задать. Потому что код, который я привел тут - приводит к падению приложения.

Спасибо.
 
Здравствуйте!

Вы не могли написать небольшой пример на MAPAPI, который наносит на пользовательскую карту линейный объект, приводящий к изменению габаритов карты, чтобы мы могли воспроизвести у себя данную проблему и исправить.
Спасибо!
Страницы: 1
Читают тему (гостей: 2)



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

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