SASGIS - SAS.Планета
View Issue Details
0002701SAS.ПланетаРефакторингpublic25-04-2015 11:4725-04-2015 21:13
zed 
vdemidov 
normalminorhave not tried
closedno change required 
141212 
 
0002701: Научить "Операции с выделенной областью" обрабатывать мультиполигоны
Сейчас все операции с выделенной областью обрабатывают только простые полигоны IGeometryLonLatPolygon, нужно приучить их к мультиполигонам IGeometryLonLatMultiPolygon.

Если какая-то операция не понимает мультиполигоны, то нужно сообщать об ошибке (это наверное будет склейка и какие-то экспорты).

В первую очередь нужно перевести Загрузку, как наиболее востребованную операцию.

No tags attached.
related to 0001894confirmed  Оптимизация итератора тайлов для мультиполигонов 
related to 0002457resolved vdemidov Обновление карты под группой полигонов 
related to 0002702closed vdemidov Сделать "Последнее выделение" (ILastSelectionInfo) мультиполигонным 
child of 0001877resolved zed Логические функции при работе с полигонами 
Issue History
25-04-2015 11:47zedNew Issue
25-04-2015 11:52zedRelationship addedrelated to 0002702
25-04-2015 11:53zedRelationship addedchild of 0001877
25-04-2015 13:14vasketsovNote Added: 0015743
25-04-2015 13:14vasketsovRelationship addedrelated to 0001894
25-04-2015 13:16vasketsovRelationship addedrelated to 0002457
25-04-2015 13:28zedNote Added: 0015744
25-04-2015 13:45zedNote Added: 0015745
25-04-2015 14:08vasketsovNote Added: 0015746
25-04-2015 21:13vdemidovNote Added: 0015752
25-04-2015 21:13vdemidovStatusnew => resolved
25-04-2015 21:13vdemidovResolutionopen => no change required
25-04-2015 21:13vdemidovAssigned To => vdemidov
25-04-2015 21:13vdemidovStatusresolved => closed

Notes
(0015743)
vasketsov   
25-04-2015 13:14   
>наверное будет склейка и какие-то экспорты
Там по идее будет проблема, если нельзя дважды один тайл записать в место назначения, иначе пока что проблема никаких, кроме неоптимальности.
Странно что не прицепил тикет 0001894.
(0015744)
zed   
25-04-2015 13:28   
Упс, я наверное что-то подзабыл и судя по 0002457 загрузка уже понимает мультиполигоны. Вернее, итератор тайлов понимает, а соответственно и все операции, построенные на этом итераторе тоже уже мультиполигонные.
(0015745)
zed   
25-04-2015 13:45   
Да, а итератор используется почти всюду:

u_ThreadCopyFromStorageToStorage.pas
u_ThreadDeleteTiles.pas
u_ThreadDownloadTiles.pas
u_ThreadExportToArchive.pas
u_ThreadExportToAUX.pas
u_ThreadExportIPhone.pas
u_ThreadExportToJNX.pas
u_ThreadExportKML.pas
u_ThreadExportToRMapsSQLite.pas
u_ThreadExportToCE.pas
u_ThreadExportYaMobileV3.pas
u_ThreadExportYaMobileV4.pas
u_ThreadGenPrevZoom.pas

А вот склейка и экспорт в ogf2 из мультиполигона берут только первый и работают с ним (юзается GetProjectedSinglePolygonByProjectedPolygon).
(0015746)
vasketsov   
25-04-2015 14:08   
>тоже уже мультиполигонные
Там по идее надо просто оптимизировать. Края в том числе, где мультичасти близко подходят к друг другу или вообще пересекаются.
То есть наоборот, надо сначала сделать объединение полигонов (OR), а потом это всё почти само получится оптимально.
(0015752)
vdemidov   
25-04-2015 21:13   
IGeometryLonLatPolygon это обобщенный полигон, включая и IGeometryLonLatMultiPolygon