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

Перепривязка района работ в другую зону.

Поиск  Пользователи  Правила  Войти
Форум » Linux » ГИС Панорама для Linux
Страницы: 1
RSS
Перепривязка района работ в другую зону., Установка другой зоны для MAP (векторной) карты.
 
Здравствуйте!

В контексте использования mapapi.
Ситуация:
Импортируем набор SXF файлов в MAP формат.
Поддерживаем выбор зоны привязки (берётся по зоне первого SXF файла).
То есть, допустим, есть набор листов карты, захватывающий 5-ую и 6-ую зону, выбрали первым файлом SXF с 5-ой зоной, получили на выходе MAP карту,
привязанную по 5-ой зоне.

Можно ли сконвертировать данную карту в 6-ую зону ? (с использованием mapapi, установить проекцию или как-то ещё?)

У меня пока только вариант сделать обратно экспорт в набор SXF файлов, и снова импорт с указанием другой зоны.

Исходный набор SXF файлов недоступен - карта MAP создана на одной машине, заливается на кучу поставочных устройств уже без исходных SXF.

P.S. Заранее извиняюсь форум не шерстил на эту тему, если где-то уже обсуждалось можно просто ссылкой в меня кинуть.
P.P.S. ГИС Конструктор Free для Qt Designer
         (версия 11, x32 среда выполнения программы:
         виртуальный образ ОС формата VMWare, созданный на основе
инсталляции,
         полученной от ОАО "Радиоавионика")
Плоские прямоугольные координаты СК-42, зоны проекции Гаусса-Крюгера (вроде это так правильно называется, я не геодезист).
Изменено: Владимир Егоров - 17.11.2017 16:57:44
 
Если нужно преобразовать карту из одной системы координат в другую программно,
то алгоритм такой:

1. Создать в другой папке пустую карту с теми же параметрами, что и исходная карта, но с другой системой координат - mapGetMapInfoPro, mapCreateMapPro
Параметры системы координат можно заполнить по коду EPSG, например:
Код
  // Запросить параметры проекции и системы координат по коду EPSG
  // Если код EPSG задает геодезическую систему координат,
  // то устанавливается проекция Широта\Долгота и соответствующие
  // параметры эллипсоида и датум
  // Если код EPSG задает плоскую прямоугольную систему координат,
  // то все параметры устанавливаются из базы EPSG
  // epsgcode  - код EPSG, для СК-42 зоны 1-60 : 28401-28460, для СК-95 зоны 1-60: 20001-20060
  // mapreg    - параметры системы координат и проекции
  // datum     - параметры пересчета с эллипсоида рабочей системы координат
  //             к WGS-84
  // ellipsoid - параметры пользовательского эллипсоида для рабочей
  //             системы координат
  // Для геодезических систем координат возвращает 2,
  // для плоских прямоугольных возвращает 1.
  // При ошибке возвращает 0
 
mapGetParametersForEPSG(long int epsgcode,  MAPREGISTEREX  *mapreg,   DATUMPARAM     *datum,  ELLIPSOIDPARAM *ellipsoid);

2. Цикл по листам - создать лист в выходной карте (кроме первого листа), запросить число объектов на исходном листе - mapCreateListPro, mapGetObjectCount
3. Цикл по объектам - Чтение объекта по порядковому номеру - mapReadObjectByNumber
4. Смена карты - mapChangeObjectMap
5. Сохранить объект - mapCommitWithPlaceForList
6. Закрыть все mapCloseData
 
Как-то сложновато получается. Проще видимо эскпорт в набор SXF сделать и обратно заимпортировать уже в другой зоне.
Я только ещё не смотрел как экспорт делается.
Спасибо.

Создать лист в выходной карте (кроме первого листа) - в смысле первый лист уже будет после создания выходной карты?
 
Да, первый лист создается автоматически.
Страницы: 1
Читают тему (гостей: 1)



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

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