Anonymous | Login | Signup for a new account | 21-11-24 17:36 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Revisions: Issue #2669 | [ All Revisions ] [ Back to Issue ] | ||
Summary | 0002669: Переделать ICoordConverter | ||
Revision | 01-09-2015 05:47 by vdemidov | ||
Description | В интерфейсе ICoordConverter слишком много методов - нужно их перенести в другие интерфейсы и в частности максимально избавиться от использования параметра Zoom. В таком виде как он есть сейчас зум имеет очень ограниченное применение - по хорошему, он должен использоваться только в пределах одного конкретного ICoordConverter. Нужно ввести интерфейс IProjectionType, который будет задавать параметры проекции: датум + метод проектирования (меркатор на сфере, меркатор на эллипсоиде, широта-долгота). И предоставлять методы для преобразования географических координат и относительных (методы LonLat*2Relative*, Relative*2LonLat*, CheckLonLat*, CheckRelative*, ValidateLonLat*, ValidateRelative*) Почти все остальные методы из ICoordConverter нужно будет перенести в IProjectionInfo попутно убрав из них указание зума, так как зум уже есть в IProjectionInfo. После полного перехода на использование методов IProjectionInfo из этого интерфейса можно будет убрать GeoConverter: ICoordConverter и переименовать сам интерфейс в IProjection В конечном итоге ICoordConverter должен превратиться в контейнер хранящий упорядоченный набор проекций с названием IProjectionSet Все это упростит использующий код и позволит добавить некоторые оптимизации. А также будет проще добавить таки поддержку нестандартных размеров тайлов. |
||
Revision | 30-03-2015 08:10 by vdemidov | ||
Description | В интерфейсе ICoordConverter слишком много методов - нужно их перенести в другие интерфейсы и в частности максимально избавиться от использования параметра Zoom. В таком виде как он есть сейчас зум имеет очень ограниченное применение - по хорошему, он должен использоваться только в пределах одного конкретного ICoordConverter. Нужно ввести интерфейс IProjectionType, который будет задавать параметры проекции: датум + метод проектирования (меркатор на сфере, меркатор на эллипсоиде, широта-долгота). И предоставлять методы для преобразования географических координат и относительных (методы LonLat*2Relative*, Relative*2LonLat*, CheckLonLat*, CheckRelative*, ValidateLonLat*, ValidateRelative*) Почти все остальные методы из ICoordConverter нужно будет перенести в IProjectionInfo попутно убрав из них указание зума, так как зум уже есть в IProjectionInfo. После полного перехода на использование методов IProjectionInfo из этого интерфейса можно будет убрать GeoConverter: ICoordConverter и переименовать сам интерфейс в IProjection В конечном итоге ICoordConverter должен превратиться в контейнер хранящий упорядоченный набор проекций с названием IProjectionsPyramid Все это упростит использующий код и позволит добавить некоторые оптимизации. А также будет проще добавить таки поддержку нестандартных размеров тайлов. |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |