Anonymous | Login | Signup for a new account | 22-11-24 01:06 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
0002932 | SAS.Планета | Рефакторинг | public | 20-12-2015 14:26 | 09-09-2023 18:37 | ||||||||
Reporter | zed | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
Status | new | Resolution | open | ||||||||||
Platform | OS | OS Version | |||||||||||
Product Version | 151111 | ||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0002932: Сделать универсальную поддержку различных систем координат | ||||||||||||
Description | Немного поразмыслив над тем, как сделана поддержка СК-42, пришёл к мысли, что можно сделать лучше и универсальнее. 1. Сделать базовый интерфейс "система координат" (ICoordSystem), с параметрами: - id данной СК - отображаемое имя 2. Сделать интерфейс "геодезическая СК" IGeodeticCoordSystem = interface(ICoordSystem) с методами: - конвертирование lonlat в/из wgs84 - парсинг/сереализация lonlat в строку 3. Сделать интерфейс "прямоугольная СК" IProjectedCoordSystem = interface(ICoordSystem) с методами: - конвертирование XY в lonlat (wgs84) и обратно - парсинг/сереализация XY в строку Так же, тут надо держать ссылку на геодезическую СК (IGeodeticCoordSystem) с которой работает данная СК. Таким образом, можно будет создать список СК и даже подгружать СК динамически из ini, так же, в конвертере координат CoordToStringConverter и парсере CoordFromStringParser полностью абстрагироваться от СК и лишь вызывать нужные методы у интерфейса активной СК. | ||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files | |||||||||||||
Relationships | |||||||||||||||||||||||||||||||
|
Notes | |
(0016951) vdemidov (manager) 20-12-2015 19:39 |
То что ты назваешь IGeodeticCoordSystem уже есть и называется датум - интерфейс IDatum. Когда нибудь будут и не совместимые напрямую c WGS84. |
(0016955) zed (manager) 20-12-2015 20:43 |
У предлагаемого интерфейса будет несколько иная задача. При создании объекта, он будет инициализироваться строкой для proj4 и при помощи этой либы будет выполнять необходимые преобразования координат. |
(0016956) vdemidov (manager) 20-12-2015 21:05 |
Ну, я думал ты это с самого начала так сделаешь, вместо огорода с отдельными функциями geodetic_wgs84_to_sk42 и тд. Но донести в комментариях к тому коммиту не сумел. А вообще я только за, но рассчитывай, что бы экземпляры IGeodeticCoordSystem могли использоваться как IDatum. Я сейчас пилю IConverteProjectionToProjection. Пока он будет делать для одинаковых типов проекций пересчет через Relative координаты, для разных - через LonLat, а в перспективе для разных датумов еще добьавится пересчет самих координат. Просто сейчас все эти операции пересчета координат расскиданы по куче мест и добавлять туда еще пересчет координат между разными датумами это проще застрелиться. А так оно будет более-менее локализовано в нескольких реализациях этого интерфейса. |
(0016958) zed (manager) 20-12-2015 21:21 |
Что-то я не понимаю что и зачем надо учитывать. Ты хочешь в СК-42 или какие там еще появятся, площадь и прочие расстояния считать? |
(0016959) vdemidov (manager) 20-12-2015 22:13 |
Ну в общем то да. Хотя оно все равно в отдельный код выделено. Просто есть отдельные сущности: Система координат/Датум (Совокупность геоида и начала системы координат. Возможно стоит выделить понятие геоида в отдельную сущность), Тип проекции (Задает как пересчитывать геодезические координаты в некоторые условные прямоугольные координаты - в сас я их в свое время обозвал Relative и изменяются они от 0 до 1, в геодезии приняты метры, но сути это не меняет), Проекция (задает как из условных прямогуольных координат получить координаты в пикселах), Проекция с нарезкой на тайлы (Одну и ту же проекцию можно по разному на резать на тайлы. Самый простой вариант тайлы размером 128, 256, 512 и тд пикселов). Эти сущности представлены в программе в той или иной мере и ИМХО не стоит их дублировать без лишней необходимости. |
(0016961) zed (manager) 22-12-2015 14:39 |
Вот как я себе это представляю: https://bitbucket.org/zedxxx/gausskrugerconverter/commits/82df69918aa68fc3e864750cc8843ed076d04ad4 Переносить в SAS? Плюс, хочу сделать загрузку ICoordSystemSimple из ini, на форуме один товарищ просил МСК-15, добавлять для всех её наверное будет лишним (мало кому нужна), а вот подгрузить из конфига можно. |
(0016962) vdemidov (manager) 22-12-2015 21:22 |
Именно в таком виде точно переносить не нужно. Как минимум заменить отдельные даблы на TDoublePoint. Еще желательно разделить саму вычислялку и ее метаданные, что бы можно было описания к ним сделать локализируемыми на другие языки. |
Users who viewed this issue | |
User List | Anonymous (3890x), vdemidov (21x), Oniman777 (2x), zed (22x), caddis (1x), DemidovSG (3x), OfK (2x), rus21andrey (1x), bk99 (3x), ramadnio (1x), Tolik (1x), ygorigor (2x), gma (1x), Garl (1x), VMatveev (1x) |
Total Views | 3952 |
Last View | 22-11-2024 01:06 |
Issue History | |||
Date Modified | Username | Field | Change |
20-12-2015 14:26 | zed | New Issue | |
20-12-2015 14:26 | zed | Relationship added | related to 0000376 |
20-12-2015 14:28 | zed | Relationship added | related to 0002576 |
20-12-2015 19:39 | vdemidov | Note Added: 0016951 | |
20-12-2015 20:43 | zed | Note Added: 0016955 | |
20-12-2015 21:05 | vdemidov | Note Added: 0016956 | |
20-12-2015 21:21 | zed | Note Added: 0016958 | |
20-12-2015 22:13 | vdemidov | Note Added: 0016959 | |
22-12-2015 14:39 | zed | Note Added: 0016961 | |
22-12-2015 21:22 | vdemidov | Note Added: 0016962 | |
11-07-2017 14:12 | zed | Relationship added | related to 0003257 |
11-07-2017 16:35 | zed | Relationship replaced | has duplicate 0003257 |
18-06-2021 07:35 | zed | Relationship added | related to 0003766 |
04-07-2023 10:20 | zed | Relationship added | related to 0003856 |
09-09-2023 18:37 | zed | Relationship added | related to 0003871 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |