MCPcopy Create free account
hub / github.com/comaps/comaps / LoadKmlData

Function LoadKmlData

libs/map/bookmark_helpers.cpp:517–565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

515}
516
517std::unique_ptr<kml::FileData> LoadKmlData(Reader const & reader, KmlFileType fileType)
518{
519 auto data = std::make_unique<kml::FileData>();
520 try
521 {
522 if (fileType == KmlFileType::Binary)
523 {
524 kml::binary::DeserializerKml des(*data);
525 des.Deserialize(reader);
526 }
527 else if (fileType == KmlFileType::Text)
528 {
529 kml::DeserializerKml des(*data);
530 des.Deserialize(reader);
531 }
532 else if (fileType == KmlFileType::Gpx)
533 {
534 kml::DeserializerGpx des(*data);
535 des.Deserialize(reader);
536 }
537 else
538 {
539 CHECK(false, ("Not supported KmlFileType"));
540 }
541 ValidateKmlData(data);
542 RemoveDuplicatedTrackPoints(data);
543 }
544 catch (Reader::Exception const & e)
545 {
546 LOG(LWARNING, ("KML", fileType, "reading failure:", e.what()));
547 return nullptr;
548 }
549 catch (kml::binary::DeserializerKml::DeserializeException const & e)
550 {
551 LOG(LWARNING, ("KML", fileType, "deserialization failure:", e.what()));
552 return nullptr;
553 }
554 catch (kml::DeserializerKml::DeserializeException const & e)
555 {
556 LOG(LWARNING, ("KML", fileType, "deserialization failure:", e.what()));
557 return nullptr;
558 }
559 catch (std::exception const & e)
560 {
561 LOG(LWARNING, ("KML", fileType, "loading failure:", e.what()));
562 return nullptr;
563 }
564 return data;
565}
566
567bool SaveGpxData(kml::FileData & kmlData, Writer & writer)
568{

Callers 2

LoadKmlFileFunction · 0.85
UNIT_CLASS_TESTFunction · 0.85

Calls 4

ValidateKmlDataFunction · 0.85
DeserializeMethod · 0.45
whatMethod · 0.45

Tested by 1

UNIT_CLASS_TESTFunction · 0.68