/* Copyright (C) 2019 * swift project Community / Contributors * * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level * directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated, * or distributed except according to the terms contained in the LICENSE file. */ #include "kmlutils.h" #include using namespace BlackMisc; using namespace BlackMisc::Geo; using namespace BlackMisc::PhysicalQuantities; namespace BlackMisc { namespace Simulation { const CLogCategoryList &CKmlUtils::getLogCategories() { static const CLogCategoryList cats { CLogCategory::interpolator() }; return cats; } QString CKmlUtils::wrapAsKmlDocument(const QString &content) { return u"\n" u"\n" u"\n" % content % u"\n" u"\n"; } QString CKmlUtils::wrapAsKmlCoordinates(const QString &content) { return u"" % content % u""; } QString CKmlUtils::asRawCoordinates(const ICoordinateGeodetic &coordinate, bool withAltitude) { return coordinate.longitude().valueRoundedAsString(CAngleUnit::deg(), 8) % u"," % coordinate.latitude().valueRoundedAsString(CAngleUnit::deg(), 8) % (withAltitude ? (u"," % coordinate.geodeticHeight().valueRoundedAsString(CLengthUnit::m())) : QString()); } QString CKmlUtils::asPoint(const ICoordinateGeodetic &coordinate, const KMLSettings &settings) { return u"" % CKmlUtils::asRawCoordinates(coordinate, settings.withAltitude) % u"" % (settings.extrude ? u"1" : u"") % (settings.withAltitude && !settings.altitudeMode.isEmpty() ? u"" % settings.altitudeMode % "" : QString()) % u""; } QString CKmlUtils::asPlacemark( const QString &name, const QString &description, const ICoordinateGeodetic &coordinate, const KMLSettings &settings) { return u"" % asPoint(coordinate, settings) % (name.isEmpty() ? QString() : u"" % name.toHtmlEscaped() % u"") % (description.isEmpty() ? QString() : u"" % description.toHtmlEscaped() % u"") % u""; } QString CKmlUtils::asLineString(const QString &coordinatesRaw, const CKmlUtils::KMLSettings &settings) { return u"" % (settings.withAltitude && !settings.altitudeMode.isEmpty() ? u"" % settings.altitudeMode % "" : QString()) % (settings.tessellate ? u"1" : u"") % (settings.extrude ? u"1" : u"") % CKmlUtils::wrapAsKmlCoordinates(coordinatesRaw) % u""; } } // ns } // ns