File indexing completed on 2024-05-19 03:53:14
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2015 Stanciu Marius-Valeriu <stanciumarius94@gmail.com> 0004 // 0005 0006 //Self 0007 #include "OsmRelationTagWriter.h" 0008 0009 //Marble 0010 #include "OsmElementDictionary.h" 0011 #include "OsmObjectAttributeWriter.h" 0012 #include "OsmTagTagWriter.h" 0013 #include "GeoDataLineString.h" 0014 #include "GeoDataPolygon.h" 0015 #include "GeoDataCoordinates.h" 0016 #include "GeoDataPlacemark.h" 0017 #include "GeoWriter.h" 0018 #include "osm/OsmPlacemarkData.h" 0019 #include "osm/OsmObjectManager.h" 0020 0021 namespace Marble 0022 { 0023 0024 void OsmRelationTagWriter::writeMultipolygon( const GeoDataPolygon& polygon, 0025 const OsmPlacemarkData& osmData, GeoWriter& writer ) 0026 { 0027 writer.writeStartElement( osm::osmTag_relation ); 0028 0029 OsmObjectAttributeWriter::writeAttributes( osmData, writer ); 0030 OsmTagTagWriter::writeTags( osmData, writer ); 0031 0032 writer.writeStartElement( osm::osmTag_member ); 0033 QString memberId = QString::number( osmData.memberReference( -1 ).id() ); 0034 writer.writeAttribute( "type", "way" ); 0035 writer.writeAttribute( "ref", memberId ); 0036 writer.writeAttribute( "role", "outer" ); 0037 writer.writeEndElement(); 0038 0039 for ( int index = 0; index < polygon.innerBoundaries().size(); ++index ) { 0040 writer.writeStartElement( osm::osmTag_member ); 0041 QString memberId = QString::number( osmData.memberReference( index ).id() ); 0042 writer.writeAttribute( "type", "way" ); 0043 writer.writeAttribute( "ref", memberId ); 0044 writer.writeAttribute( "role", "inner" ); 0045 writer.writeEndElement(); 0046 } 0047 writer.writeEndElement(); 0048 } 0049 0050 void OsmRelationTagWriter::writeRelation( const QVector<GeoDataPlacemark*>& members, const QString& id, 0051 const QMap<QString,QString>& tags, GeoWriter& writer ) 0052 { 0053 Q_UNUSED( members ); 0054 Q_UNUSED( id ); 0055 Q_UNUSED( tags ); 0056 Q_UNUSED( writer ); 0057 0058 // Not implemented yet ( need to implement the custom relations first ) 0059 } 0060 0061 } 0062