From 17f0b0b3bc65ffba39bf6f22a12b2cc7fcb9bafd Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 6 Jul 2019 02:03:50 +0200 Subject: Proof-of-concept of JSON export limited to PrimeMeridian (refs #1545) --- src/iso19111/metadata.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/iso19111/metadata.cpp') diff --git a/src/iso19111/metadata.cpp b/src/iso19111/metadata.cpp index 3725b072..761b909b 100644 --- a/src/iso19111/metadata.cpp +++ b/src/iso19111/metadata.cpp @@ -1088,6 +1088,26 @@ void Identifier::_exportToWKT(WKTFormatter *formatter) const { } } } + +// --------------------------------------------------------------------------- + +void Identifier::_exportToJSON(JSONFormatter *formatter) const { + const std::string &l_code = code(); + const std::string &l_codeSpace = *codeSpace(); + if (!l_codeSpace.empty() && !l_code.empty()) { + auto &writer = formatter->writer(); + PROJ::CPLJSonStreamingWriter::ObjectContext objContext(writer); + writer.AddObjKey("authority"); + writer.Add(l_codeSpace); + writer.AddObjKey("code"); + try { + writer.Add(std::stoi(l_code)); + } catch (const std::exception &) { + writer.Add(l_code); + } + } +} + //! @endcond // --------------------------------------------------------------------------- -- cgit v1.2.3