SASGIS - SAS.Планета
View Issue Details
0002192SAS.Планета[All Projects] Багpublic25-09-2013 14:2505-10-2013 09:03
zed 
vdemidov 
normalminoralways
resolvedfixed 
.Nightly 
131111131111 
0002192: При определённых условиях полигон импортируется (из kml) как путь
А условия такие: если в kml первым обрабатывается путь (тэг LineString) и следом, в этом же kml, попадается полигон (тэг LinearRing), то он будет импортирован как путь. Если порядок следования объектов в kml изменить, то оба импортируются как положено. В аттаче 2 kml (с одними и теми же объектами), один рабочий, а второй нет.
Исследования показали, что спотыкается вот на эту проверку:

u_XmlInfoSimpleParser.TParseXML_Aux.ApplyKmlTag

  // тип не понижаем
  if FCurrentFOT<VForceObjectType then
    FCurrentFOT:=VForceObjectType;

Тэги описаны в алфавитном порядке и LinearRing идёт перед LineString(vsagps_public_kml.pas) :

Tvsagps_KML_main_tag = (
    // keep first
    kml_kml,
    // abc order
    kml_AddressDetails,
    ...
    kml_LatLonBox,
    kml_LinearRing,
    kml_LineString,
    kml_LineStyle,
    ...
);
No tags attached.
related to 0001931closed vasketsov SACS.Планета При импорте теряются имя и описание метки 
related to 0002033resolved vdemidov SAS.Планета При импорте теряются имя и описание метки 
? 1_Ok_LinearRing_LineString.kml (927) 25-09-2013 14:25
http://www.sasgis.org/mantis/file_download.php?file_id=1535&type=bug
? 2_Fail_LineString_LinearRing.kml (927) 25-09-2013 14:25
http://www.sasgis.org/mantis/file_download.php?file_id=1536&type=bug
Issue History
25-09-2013 14:25zedNew Issue
25-09-2013 14:25zedFile Added: 1_Ok_LinearRing_LineString.kml
25-09-2013 14:25zedFile Added: 2_Fail_LineString_LinearRing.kml
25-09-2013 14:26zedAssigned To => vasketsov
25-09-2013 14:26zedStatusnew => assigned
25-09-2013 14:32zedNote Added: 0012960
25-09-2013 14:36zedAssigned Tovasketsov =>
25-09-2013 14:37zedStatusassigned => new
25-09-2013 14:58vdemidovNote Added: 0012961
25-09-2013 15:01zedNote Added: 0012962
25-09-2013 16:36vasketsovNote Added: 0012963
25-09-2013 16:36vasketsovRelationship addedrelated to 0001931
25-09-2013 16:49vasketsovNote Edited: 0012963bug_revision_view_page.php?bugnote_id=12963#r5746
26-09-2013 04:36zedNote Added: 0012966
26-09-2013 19:33vdemidovStatusnew => confirmed
26-09-2013 19:34vdemidovTarget Version => 131111
05-10-2013 09:03vdemidovStatusconfirmed => resolved
05-10-2013 09:03vdemidovFixed in Version => 131111
05-10-2013 09:03vdemidovResolutionopen => fixed
05-10-2013 09:03vdemidovAssigned To => vdemidov
04-11-2013 11:35vdemidovRelationship addedrelated to 0002033

Notes
(0012960)
zed   
25-09-2013 14:32   
Сейчас проверил на SACS - там такой проблемы нету, так что это я наверное поспешил назначать vasketsov'a ответственным.
(0012961)
vdemidov   
25-09-2013 14:58   
Zed может поковыряешься раз уж начал?
(0012962)
zed   
25-09-2013 15:01   
В SACS там глобально всё переделано, поэтому единственное, так это могу попробовать накатить патч. Но и это уже только завтра.
(0012963)
vasketsov   
25-09-2013 16:36   
(edited on: 25-09-2013 16:49)
Патч - u_XmlVectorObjects.
TParseXML_Aux - выпиливается.
Делалось по тикету 1931 - соответственно и мультигеометрия грузится, там всё написано.

>Тэги описаны в алфавитном порядке
Это неважно в данном случае.
Непонижение типа - в рамках отдельного перечислимого типа. Сделано по причине полигонов в gpx и полигонов как LineString. И работать должно только в рамках одной метки Placemark (значение сбрасывается по условию). Если в рамках ОДНОЙ метки будет мультигеометрия вида "линия+полигон" - загружена будет линия. Вот это для чего. А то что на приложенном файле лажается - это какая-то другая ошибка, например, тип не сбрасывается.

(0012966)
zed   
26-09-2013 04:36   
2vdemidov:
Всё печально - там появляется куча новых юнитов и интерфейсов, так что смотри лучше сам, что и в каком виде затягивать.