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

Function SaveBookmarkExtendedData

libs/kml/serdes.cpp:336–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

334}
335
336void SaveBookmarkExtendedData(Writer & writer, BookmarkData const & bookmarkData)
337{
338 writer << kIndent4 << kExtendedDataHeader;
339 if (!bookmarkData.m_name.empty())
340 SaveLocalizableString(writer, bookmarkData.m_name, "name", kIndent6);
341
342 if (!bookmarkData.m_description.empty())
343 SaveLocalizableString(writer, bookmarkData.m_description, "description", kIndent6);
344
345 if (!bookmarkData.m_featureTypes.empty())
346 {
347 std::vector<std::string> types;
348 types.reserve(bookmarkData.m_featureTypes.size());
349 auto const & c = classif();
350 if (!c.HasTypesMapping())
351 MYTHROW(SerializerKml::SerializeException, ("Types mapping is not loaded."));
352 for (auto const & t : bookmarkData.m_featureTypes)
353 types.push_back(c.GetReadableObjectName(c.GetTypeForIndex(t)));
354
355 SaveStringsArray(writer, types, "featureTypes", kIndent6);
356 }
357
358 if (!bookmarkData.m_customName.empty())
359 SaveLocalizableString(writer, bookmarkData.m_customName, "customName", kIndent6);
360
361 if (bookmarkData.m_viewportScale != 0)
362 {
363 auto const scale = strings::to_string(static_cast<double>(bookmarkData.m_viewportScale));
364 writer << kIndent6 << "<mwm:scale>" << scale << "</mwm:scale>\n";
365 }
366
367 if (bookmarkData.m_icon != BookmarkIcon::None)
368 writer << kIndent6 << "<mwm:icon>" << ToString(bookmarkData.m_icon) << "</mwm:icon>\n";
369
370 if (!bookmarkData.m_boundTracks.empty())
371 {
372 std::vector<std::string> boundTracks;
373 boundTracks.reserve(bookmarkData.m_boundTracks.size());
374 for (auto const & t : bookmarkData.m_boundTracks)
375 boundTracks.push_back(strings::to_string(static_cast<uint32_t>(t)));
376 SaveStringsArray(writer, boundTracks, "boundTracks", kIndent6);
377 }
378
379 writer << kIndent6 << "<mwm:visibility>" << (bookmarkData.m_visible ? "1" : "0") << "</mwm:visibility>\n";
380
381 if (!bookmarkData.m_nearestToponym.empty())
382 {
383 writer << kIndent6 << "<mwm:nearestToponym>";
384 SaveStringWithCDATA(writer, bookmarkData.m_nearestToponym);
385 writer << "</mwm:nearestToponym>\n";
386 }
387
388 if (bookmarkData.m_minZoom > 1)
389 writer << kIndent6 << "<mwm:minZoom>" << strings::to_string(bookmarkData.m_minZoom) << "</mwm:minZoom>\n";
390
391 SaveStringsMap(writer, bookmarkData.m_properties, "properties", kIndent6);
392
393 if (!bookmarkData.m_compilations.empty())

Callers 1

SaveBookmarkDataFunction · 0.85

Calls 14

SaveLocalizableStringFunction · 0.85
SaveStringsArrayFunction · 0.85
to_stringFunction · 0.85
SaveStringWithCDATAFunction · 0.85
SaveStringsMapFunction · 0.85
HasTypesMappingMethod · 0.80
GetReadableObjectNameMethod · 0.80
frontMethod · 0.80
ToStringFunction · 0.70
emptyMethod · 0.45
reserveMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected