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

Изменение соотношения сторон карты

Поиск  Пользователи  Правила  Войти
Форум » Общие вопросы » Навигационные карты
Страницы: 1
RSS
Изменение соотношения сторон карты
 
Добрый день. Имеется карта Мира соотношением сторон 5х6. Хотелось бы её "исказить" например в соотношение 2х3 или 1х2. Возможно ли это сделать средствами Вашей ГИС или каким-либо иным методом? :?:
 
1. Выделить все (требуемые) объекты карты
2. Редактор карты - Масштабирование, поворот объектов
3. На вопрос "Перемещать все выделенные объекты?" ответить "Да"
4. Изменить габариты выделенной области (прямоугольника)
5. Сохранить результат (двойное нажатие мышью)
 
С картой понял, попробовал - получилось. Спасибо. Вот только матрица высот, естественно, остается со старыми габаритами. Как бы и её исказить? Возникла идея по ней (матрице высот) нанести горизонтали на карту, потом исказить карту, затем вновь создать матрицу высот и после удалить горизонтали...нет ли более простого решения?
И еще вопрос: возможно ли средсвами GIS ToolKit при возникновении события изменения габаритов элемента отображения картографических данных (к примеру непропорциональное растягивание или сужение мышью) в режиме реального времени изменять габариты (произвольно искажать соотношение высоты и ширины) карты и матрицы высот? :?:
 
Можно изменить пропорции готовой картинки после отрисовки.

Есть функция изменения разрешения экрана по высоте и ширине:

Код
  
  // Запросить/Установить точность текущего режима экрана в точках
  // на метр (1000 - 100000). При установке возвращает старое
  // значение и пересчитывает коэффициент масштабирования экрана
  // При ошибке возвращает 0

_MAPIMP void _MAPAPI mapSetScreenPrecisionEx(double valueHor, double valueVer);
 
Спасибо, Олег. Принял к использованию в работе. Но вот вопрос с реальным искажением матрицы высот остается открытым...горизонтали на мою карту не строятся - слишком уж тяжёлая матрица  :cry:
 
У меня также есть вопрос про искажения.
Есть программа, которая отображает карту с фиксированным масштабом.

Код
var w = 0;
var h = 0;
var scale = 10000.0f;
NativeMethods.mapSetViewScale(hMap, ref w, ref h, scale);


Когда я запускаю эту программу на разных мониторах, я получаю разное изображение - где-то отображается больший участок карты, где-то меньший. Опытным путем выяснил, что дело в разном значении mapGetScreenPrecision. На моем мониторе это 3979, на другие - другое.

Как это значение вычисляется и от чего зависит? И как сделать так, чтобы на разных мониторах карта отображалась одинаково? Только установкой одинакового mapSetScreenPrecision?
 
Обычно достаточно установить размер диагонали экрана (mapSetScreenSizeEx), соответствующий диагонали каждого экрана, и одинаковый коэффициент масштабирования (mapSetScreenScale, например 100%).

При выполнении данных условий линейные размеры объектов можно будет мерить на экране линейкой (кроме ЭЛТ-мониторов - они имеют нелинейные искажения). Линейные размеры должны быть близки к печатным размерам.

P.S. Мониторы могут иметь разные размеры: 10", 15", 17" или иной, и разрешение: 1024х768, 1024х800, 1280х1024 или иное. Поэтому устанавливать одинаковое разрешение не совсем корректно. ScreenPrecision вычисляется автоматически.
Страницы: 1
Читают тему (гостей: 1)



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

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