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

Масштабирование геопортала

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Масштабирование геопортала
 
Здравствуйте.
Я в своей программе подключаюсь к геопорталу. Захотелось реализовать "умное масштабирование" по колесику мыши. Использовал код из примера fndobj:
Код
procedure TfrmFind.mvMapMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
  pScale1, iold : integer;
begin
  Handled := true;

  iold := mvMap.ViewScale;

  If (iold <= 2000)
    then pScale1 := iold - 50
    else If (iold > 2000) and (iold <= 20000)
           then pScale1 := iold - 500
           else If (iold > 20000) and (iold <= 50000)
                  then pScale1 := iold - 1000
                  else If (iold > 50000) and (iold <= 500000)
                          then pScale1 := iold - 5000
                          else pScale1 := iold - 10000;

  mvMap.ScaleInPoint((pScale1), nil);

end;
Но масштаб не хочет корректно меняться. Более того, если для геопортала установить знаменатель масштаба 6000, он устанавливается в 5652. Почему такое происходит? Методом проб и ошибок выяснил, что изменение масштаба для геопорталов всегда работает только при его увеличении/уменьшении в 2 раза (* или div 2).
При использовании TMapManager такая же беда: масштаб корректно меняется только по клавишам <;>, а при прокрутке мышью с зажатой клавишей ctrl, масштаб не меняется.
Изменено: Nick0990 - 12.09.2022 15:08:50
 
Геопорталы при работе с тайлами отдают изображение карты в заранее определенных масштабах, которые отличаются друг от друга в 2 раза. Поэтому отобразить карту в такой ситуации в произвольном масштабе не получится.
 
А возможно ли получить поддерживаемые масштабы для геопортала?
 
Масштабный ряд зависит от параметров монитора и масштабного коэффициента. Поэтому на разных мониторах он может быть разным.
Если геопортал является тайловым (WMTS), то он всегда отображается по определённым масштабным коэффициентом.
Список машстабных коэффициентов описан в файле crsregister.xml для каждой матрицы тайлов. Разные геопорталы могут использовать разные матрицы тайлов.
Поэтому заранее созданного списка масштабов нет. Он всегда формируется динамически на основании текущих параметров.
Запросить текущий реальный масштаб отображения можно функцией mapGetRealShowScale.
Чтобы узнать какой масштаб установиться, возможно воспользоваться функцией wmsGetWMTSScale, идентификатор данных можно получить функцией mapGetHWMS
Для геопорталов по стандарту (WMS) можно выставить любой масштаб.
Страницы: 1
Читают тему (гостей: 1)



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

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