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

Координаты растра

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

Имеется карта .map. На неё загружен растр в формате geoTiff. Каким образом можно получить его координаты (координаты угла)? С помощью mapGetRstLocation это сделать не получается.
 
Цитата
bidjiz написал:
Добрый день!Имеется карта .map. На неё загружен растр в формате geoTiff. Каким образом можно получить его координаты (координаты угла)? С помощью mapGetRstLocation это сделать не получается.
Добрый день! Просьба уточнить в какой программе, версии и в какой ОС работаете?
Также просьба прислать пример кода.
 
Используется версия  gisdesigner 13.4.0.3 для linux.

Пытался сделать так:
Код
long number = mapGetRstNumberByName(map_handle, QStringToConstCharP(name));
DOUBLEPOINT* location = new DOUBLEPOINT();
mapGetRstLocation(map_handle, number, location); 
number - точно правильный, т.к. могу удалить растр с карты с помощью mapCloseRst(map_handle, number)
Изменено: bidjiz - 16.03.2022 16:58:40
 
Здравствуйте!
Для проверки прошу прислать Вашу карту и растр на электронную почту: panorama@gisinfo.ru
 
Частично разобрался. mapGetRstLocation() всё-таки заработал. Но легче от этого не стало. Это правильная функция для определения координат?
Дело в том, что она выдаёт   DOUBLEPOINT *location с двумя парами координат - x, y и X, Y. Пробовал поставить по этим координатам точку следующим образом:
Код
DOUBLEPOINT& point = ... // содержит результат из mapGetRstLocation

QDMapPointAcces map_point;
map_point.SetMapView(ui->map_main);
map_point.SetPlaceIn(PP_PLANE);

map_point.SetPoint(point.X, point.Y);

ui->map_obj->VarMetric->Update(0, 1, &map_point);
ui->map_obj->Commit();

ui->map_obj->Center();
Точка даже близко к растру не попадает.
Карта и растр
Изменено: bidjiz - 17.03.2022 12:11:38
 

Здравствуйте!
Привожу пример кода, демонстрирующий результат работы функции mapGetRstLocation. Функция возвращает корректные значения координат юго-западного угла растра.

Код
  DOUBLEPOINT location;
  if(!mapGetRstLocation(mapHandle, 1, &location))
      return;

  HOBJ hobj = mapCreateObject(mapHandle);
  if(!hobj)
      return;

  mapRegisterObject(hobj, 53420000, LOCAL_POINT);
  mapAppendPointPlane(hobj, location.x, location.y, 0);
  mapCommit(hobj);
  mapFreeObject(hobj);

 
Хм, интересно. А каким образом можно центрировать карту на объекте, созданном подобным образом?
 

Здравствуйте!

Центрирование объекта с использованием библиотеки графических компонентов ГИС Конструктора можно выполнить следующим образом:

Код
DOUBLEPOINT location;
if(!mapGetRstLocation(mapHandle, 1, &location))
    return;

ui.DMapObj1->SetMapView(ui.DMapView1);
ui.DMapObj1->CreateObject(0, IDDOUBLE2, 0, 1, 53420000, LOCAL_POINT);
ui.DMapPoint1->SetPlaceIn(PP_PLANE);
ui.DMapObj1->AppendPlanePoint(0, &location);
ui.DMapObj1->Commit();

ui.DMapView1->SetViewScale(50000);
ui.DMapObj1->Center();

Пример центрирования объекта с помощью функций интерфейса MAPAPI приводится в проекте MapView из состава инсталляции ГИС Конструктора.

Страницы: 1
Читают тему (гостей: 1)



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

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