View Issue Details

IDProjectCategoryView StatusLast Update
0002536SAS.ПланетаРефакторинг / Refactoringpublic11-12-2014 15:08
Reporterzed Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status confirmedResolutionopen 
Product Version140505 
Target Version44xxxx 
Summary0002536: Сделать парсер kml на базе libkml
DescriptionУ гугла есть опенсорсная (New BSD License) референсная реализация парсера kml файлов: https://github.com/google/libkml с поддержкой всех фич kml 2.2. Помимо kml, либа умеет парсить gpx и csv файлы.

Библиотека написана на С++ и к сожалению, не имеет Си обёртки, поэтому нельзя просто взять и заюзать её в Delphi. Предварительно нужно написать небольшой врапер на Си, предоставляющий минимально-необходимый API для парсинга kml.
Tagscsv, google, google earth, gpx, kml, kmz, импорт

Relationships

related to 0000425 resolvedzed Добавить обработку <Folder> при импорте из .kml 
related to 0002331 confirmed Дублирование трека при импорте kml 
related to 0000426 resolvedzed Добавить обработку <LineStyle>, <PolyStyle> при импорте из .kml 

Activities

zed

11-12-2014 12:07

manager   ~0015037

Полезный линк о том, как делать сишную обёртку над С++ кодом: Elegantly call C++ from C

vdemidov

11-12-2014 13:42

manager   ~0015038

Честно говоря делать С обертку над С++ кодом, что бы потом сделать Delphi обертку над С либой это не то чем хочется заниматься. Гораздо лучше сделать COM-подобную обертку над С++ кодом и сразу использовать ее из кода на Delphi. И если бы не делфовские строки, то это было бы и не сложно сделать. Но вот строки......

zed

11-12-2014 14:26

manager   ~0015039

Да, тоже вариант. А строки придётся конвертировать в любом случае, что в Си-обёртке, что в COM.

Вот, кстати, ещё ссылка в тему: Using C++ objects in Delphi

vdemidov

11-12-2014 15:08

manager   ~0015040

> А строки придётся конвертировать в любом случае, что в Си-обёртке, что в COM.
А это приводит нас к тому, что нужно или в программе везде использовать WideString строки, которые можно вернуть из COM, или опять делать еще один слой оберток на Delphi, что приводит нас опять к куче бесполезной работы как с точки зрения написания кода, так и с точки зрения производительности. Печалька :(

Issue History

Date Modified Username Field Change
08-11-2014 12:44 zed New Issue
08-11-2014 12:50 zed Description Updated
08-11-2014 12:53 zed Tag Attached: csv
08-11-2014 12:53 zed Tag Attached: google
08-11-2014 12:53 zed Tag Attached: google earth
08-11-2014 12:53 zed Tag Attached: gpx
08-11-2014 12:53 zed Tag Attached: kml
08-11-2014 12:53 zed Tag Attached: kmz
08-11-2014 12:55 zed Relationship added related to 0000425
08-11-2014 13:12 zed Relationship added related to 0002331
08-11-2014 13:13 zed Relationship added related to 0000426
08-11-2014 13:13 zed Tag Attached: импорт
10-12-2014 10:33 vdemidov Status new => confirmed
10-12-2014 10:33 vdemidov Target Version => 44xxxx
11-12-2014 12:07 zed Note Added: 0015037
11-12-2014 13:42 vdemidov Note Added: 0015038
11-12-2014 14:26 zed Note Added: 0015039
11-12-2014 15:08 vdemidov Note Added: 0015040
08-08-2025 13:25 zed Category Рефакторинг => Рефакторинг / Refactoring