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

Перевод средствами Gis Toolkit CK c номером зоны

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
Перевод средствами Gis Toolkit CK c номером зоны
 
Здравствуйте уважаемые форумчане, хочу предупредить сразу! в картографии и топографии не силен, поэтому нуждаюсь в подробной консультации, если возможно. Существует следующий формат представления данных - X = +06 283 314 М, Y = 09 307 605 М, N_зоны = 09-08, H = +0122 М. И есть средства GIS ToolKit 11 для IDE Borland Delphi 7, как мне перевести такой формат данных с номером зон или зоны в прямоугольную глобальную СК с X и Y без номеров зон(ы) средствами API  GIS ToolKit 11 и соответственно привязать к карте.
Изменено: Андрей Глазырин - 18.06.2017 23:09:06
 
Цитата
Андрей Глазырин написал:
Существует следующий формат представления данных - X = +06 283 314 М, Y = 09 307 605 М, N_зоны = 09-08, H = +0122 М.
...
как мне перевести такой формат данных с номером зон или зоны в прямоугольную глобальную СК с X и Y без номеров зон(ы)
Во-первых, для любых операций по преобразованию координат необходимо знать в какой СК записаны исходные координаты и в какую СК их необходимо преобразовать.

Во-вторых, что такое "без зоны"?
Все топографические проекции - зональные. Правила присвоения номера зоны и начала отсчета могут быть разными, но зона будет.
Согласно общепринятым международным нормам номер зоны записывается в координату Y в первые два разряда (миллионы).
У Вас, кстати, так и есть - номер зоны в координате Y = 9.
Поэтому, если перед Вами стоит задача представления координат всего тремя полями - X-Y-H (без преобразования к другой СК), то можно считать, что эта задача уже выполнена.
Если нет, и необходимо выполнить пересчет к другой СК, тогда см. пункт "во-первых".

GIS ToolKit позволяет выполнять практически любые трансформирования координат "на лету".
Достаточно создать пустую карту в нужной Вам СК, с нужными параметрами проекции, открыть ее и добавить к ней карту с Вашими объектами в исходной СК.
При корректно заполненных  паспортных данных карт, вторая карта будет автоматически пересчитана в проекцию и СК первой карты. После чего Вы сможете запросить координаты своих объектов уже в новой СК.
Это наиболее простой способ. Существуют и другие.
Для начала необходимо определиться с задачей.
 
Задано СК 42 (Прямоугольная в мерах) перевести в прямоугольную СК в метрах, напишите порядок перевода и API для этой манипуляции
Изменено: Андрей Глазырин - 19.06.2017 12:15:08
 
Цитата
Андрей Глазырин написал:
перевести в прямоугольную СК в метрах
В некую абстрактную СК перевести невозможно. Нужно знать параметры этой СК.


Общий порядок такой:
1. Создать карту в исходной СК (можно временную).
2. Задать параметры рабочей СК для этой карты (указать параметры той СК, куда необходим пересчет).
3. Выполнить пересчет.
4. Закрыть карту.

для заполнения структур MAPREGISTEREX, DATUMPARAM и ELLIPSOIDPARAM можно воспользоваться кодом СК в базе данных EPSG, если он Вам известен.
 
Задано СК 42 (Прямоугольная в мерах) перевести в Геодезическую СК (международный эллипсоид WGS 1984). Напишите метод как это делается конкретный метод, не нужны ссылки...или пример кода, как в обычных форумах пишут
 
Во-первых, я вижу что Вы свою задачу плохо представляете
Цитата
Андрей Глазырин написал:
Задано СК 42 (Прямоугольная в мерах) перевести в Геодезическую СК (международный эллипсоид WGS 1984).
Цитата
Андрей Глазырин написал:
как мне перевести такой формат данных с номером зон или зоны в прямоугольную глобальную СК с X и Y без номеров зон(ы)
геодезическая СК подразумевает угловые координаты - широта и долгота.
для того, чтобы перейти к метрам, нужны параметры проекции.

предположим, что это будет проекция "цилиндрическая Меркатора на шаре" - код EPSG: 3857
для Вашей исходной СК 42 года - код EPSG:4284

заполняйте по этим кодам структуры MAPREGISTEREX, DATUMPARAM и ELLIPSOIDPARAM для исходной СК и СК-назначения, а затем все по описанному выше порядку:
Цитата
Денис Вицко написал:
1.  Создать карту в исходной СК  (можно временную).
2.  Задать параметры рабочей СК для этой карты  (указать параметры той СК, куда необходим пересчет).
3.  Выполнить пересчет .
4.  Закрыть карту .



Теперь, во-вторых:
Цитата
Андрей Глазырин написал:
Напишите метод как это делается конкретный метод, не нужны ссылки...или пример кода, как в обычных форумах пишут
Не могу ничего сказать про "обычные форумы".
Вы обратились на форум технической поддержки, где обсуждаются вопросы использования компонент инструментариев семейства GIS ToolKIT и интерфейса MAPAPI, ошибки и трудности при работе с ними.

Я Вам привел пять функций, необходимых для решения Вашей задачи, и порядок их вызова.

Писать за Вас код Вашей задачи никто не будет.

Если Вы хотите кому-то из пользователей форума предложить работу по написанию Вашей программы, то сразу скажу, что наш форум для этого не предназначен.

Для программирования с использованием MAPAPI-интерфейса необходимо обладать базовыми знаниями о структуре электронных карт. Почитать лучше тут.
Также предлагаю Вам ознакомится с примерами, входящими в состав GIS ToolKIT, с примерами для Visual C++, примерами в SDK.
Возможно, все окажется не так уж и страшно и Вы решите задачу своими силами.  
 
Цитата
Задано СК 42 (Прямоугольная в мерах) перевести в Геодезическую СК  (международный эллипсоид WGS 1984).
Напишите метод как это делается  конкретный метод, не нужны ссылки...или пример кода, как в обычных  форумах пишут
функция номер 1, преобразование Ваши координат в радианы (без создания карты)
Код
 // Преобразование координат в метрах на местности из заданной зоны
 // в геодезические координаты в системе 42г.
 // zone - номер исходной зоны системы 1942г
 // x;y  - преобразуемые координаты
 // на входе метры в одной зоне 42г.;на выходе - радианы.
 // При ошибке возвращает 0

function  mapPlaneToGeo42ByZone(zone : integer; var x,y : double) : integer;
 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF} external sGisAcces;
результаты функции номер один отправляете в функцию  номер 2

Код
 // Преобразование геодезических координаты в радианах из системы 1942г
 // (эллипсоид Красовского) в геодезические координаты в радианах
 // (общеземной эллипсоид WGS84) (поддерживается не для всех карт !)
 // hmap - идентификатор открытых данных
 // Bx;Ly  - преобразуемые координаты
 // на входе радианы в 42г.; на выходе - радианы в WGS84
 // H     - высота в точке (метры)
 // Параметр hmap может быть равен нулю

procedure mapGeo42ToGeoWGS84Ex(var Bx, Ly,H : double);
 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF}
external sGisAcces;
function  mapGeo42ToGeoWGS84(Map : HMap;var Bx, Ly : double) : integer;
 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF}
external sGisAcces;
function  mapGeo42ToGeoWGS843D(Map : HMap; var Bx, Ly, H : double) : integer;
 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF}
external sGisAcces;

например у вас есть
X = +06 283 314 М, Y = 09 307 605 М, N_зоны = 09-08, H = +0122 М.
Код
var x, y, h : double;
begin
  x := 6283314;
  y := 307605;  
  h := 122;
  mapPlaneToGeo42ByZone (9, x,y);
  mapGeo42ToGeoWGS843D(0, x,y,h); // в комментарии написано, что "Параметр hmap может быть равен нулю"
  
  ИТОГО в x-широта в y-долгота а WGS84 а в h - пересчитанная высота 

end;
как то так =)
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Во-первых, не надо за меня писать код (т.к. я все же надеюсь, что перевод СК уже зашит в вашем пакете - по крайне мере мне говорили об этом до покупки ПО) - те функции, которые Вы указывали, не доступны в GIS ToolKit 11 для IDE Borland Delphi 7, я в самом начале писал с чем я работаю,
Во-вторых, в документации  Gis Toolkit 11 я не нашел примеров перевода, и в примерах demos, скаченного пакета, если есть то подскажите где,
В-третьих, при покупке продукта мне обещали обширную консультацию по всем возникающим вопросам - можно ее получить?  
 
KFF,спасибо, но почему то нет этих функций у меня и ошибка при компиляции, что я не так сделал? скачал Инструментарий разработчика ГИС-приложений GIS ToolKit (версия 11.14.2)
 
а все нашел надо подгрузить gisacces.dll, щас попробую))) т.е. эта динамическая библиотека входит в состав GIS ToolKit 11 для IDE Borland Delphi 7 и ее надо просто импортировать в проект, к ней есть какие-нибудь зависимоcти?
Изменено: Андрей Глазырин - 19.06.2017 21:31:36
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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