QJsonObject JSonGeometryParser::toJSon(const GeometryPtr& geometry) { QJsonObject geometryJSon; geometryJSon.insert(keys::geometryType, keys::typeMap.value(geometry->type())); if (!geometry->points().isEmpty()) { geometryJSon.insert(keys::coordinates, ::pointsToJSonArray(geometry->points(), geometry->type())); } if (!geometry->childGeometries().isEmpty()) { QJsonArray childGeometryJSon; for (const GeometryPtr& childGeometry: geometry->childGeometries()) { childGeometryJSon.append(JSonGeometryParser::toJSon(childGeometry)); } geometryJSon.insert(keys::geometries, childGeometryJSon); } return geometryJSon; }