SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002536SAS.ПланетаРефакторингpublic08-11-2014 12:4411-12-2014 15:08
Reporterzed 
Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusconfirmedResolutionopen 
PlatformOSOS Version
Product Version140505 
Target Version29xxxxFixed in Version 
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, импорт
Attached Files

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

-  Notes
(0015037)
zed (manager)
11-12-2014 12:07

Полезный линк о том, как делать сишную обёртку над С++ кодом: Elegantly call C++ from C
(0015038)
vdemidov (manager)
11-12-2014 13:42

Честно говоря делать С обертку над С++ кодом, что бы потом сделать Delphi обертку над С либой это не то чем хочется заниматься. Гораздо лучше сделать COM-подобную обертку над С++ кодом и сразу использовать ее из кода на Delphi. И если бы не делфовские строки, то это было бы и не сложно сделать. Но вот строки......
(0015039)
zed (manager)
11-12-2014 14:26

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

Вот, кстати, ещё ссылка в тему: Using C++ objects in Delphi
(0015040)
vdemidov (manager)
11-12-2014 15:08

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

- Users who viewed this issue
User List Anonymous (3103x), vdemidov (2x), zed (1x), GunSmoker (1x)
Total Views 3107
Last View 18-04-2024 16:44

- Issue History
Date Modified Username Field Change
08-11-2014 12:44 zed New Issue
08-11-2014 12:50 zed Description Updated View Revisions
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 => 29xxxx
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



Copyright © 2007 - 2024 SAS.Planet Team