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

Существует ли такой УЗ

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » Классификаторы и условные знаки
Страницы: 1
RSS
Существует ли такой УЗ
 
Никак не могу найти УЗ из operator.rsc со следующими характеристиками:
  • В виде круга с заливкой
  • Можно задавать радиус(диаметр) УЗ, что отразится на его размере на карте
Или такого не существует и придётся рисовать вручную, отслеживая изменение масштаба карты с последующей перерисовкой таких объектов?
Код
// Версия библиотеки MapAccess
// (если применяется "mapacces.h" и т.п.)
#define MAPACCESSVERSION  20160418

// Версия интерфейса MAPAPI и ядра библиотеки
#define MAPAPIVERSION  0x0111302
 
Есть знак (ключ 713230060 ) растягиваемая по метрике окружность с подписью в центре, радиус соответствует метрике, но она без фона.
Напишите подробнее для каких целей нужен знак. Можно добавить аналогичный с фоном
 
Наталья, спасибо! Думаю такой знак с подписью подойдёт нам даже лучше, чем с заливкой!  
 
Наталья,
попробовал нанести на карту данный знак с помощью такого кода:
Код
HOBJ hObj = mapCreateSiteObject(hMap, userMap, IDDOUBLE2, 1);
mapRegisterObject(hObj, 713230060, LOCAL_VECTOR);

    //указать координаты центра и радиус
mapAppendPointPlane(hObj, x, y);
mapAppendPointPlane(hObj, x, y + (diameter/2));

//меняем цвет и удаляем текст
mapAppendSemanticLong(hObj, 31002, RGB(color.red(), color.green(), color.blue()));
mapAppendSemantic(hObj, 5400, "", 2);

mapCommitObject(hObj);

Окружность рисуется, но диаметр получается меньше, чем должен быть. То есть, указываю diameter = 1000, вывожу на карту сетку с шагом 1000м и в результате окружность полностью вписывается в ячейку сетки с заметным запасом по краям. В чём может быть проблема? Использую карту Подольска.
 
Я посмотрела знак, у него отчет (вторая точка) стоит приблизительно - дальше, чем край окружности. Он не задумывался как измерительный.
Поправьте 2 точку отсчета- точно на край окружности. В основном классификаторе я тоже поправлю, но когда буду выкладывать. И еще - можно в знаке убрать значение текста подписи по-умолчанию - тогда подпись будет, если есть семантика 5400, иначе - чтобы получить знак без подписи нужно давать значение сем 5400 = " ".
 
Наталья, подбором установил, что радиус нужно домножать на, примерно, 1.3, чтобы окружность рисовалась правильного размера, то есть получился такой код для второй точки:
Код
mapAppendPointPlane(hObj, x, y + (diameter/2*1.3));
Ну а подпись я так и убираю - через семмантику 5400 пустой строкой:
Код
mapAppendSemantic(hObj, 5400, "", 2);
Или я вас неправильно понял?
 
Подпись правильно убираете, а знак - зайдите в классификатор - поправьте параметры и векторные и экранные: а именно в векторном знаке - вторую точку в отсчете. (1 - в центре, 2 - на линии окружности)
А то я поправлю - выложу для всех и у Вас радиусы поедут  
 
Наталья, спасибо!
Страницы: 1
Читают тему (гостей: 1)



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

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