|
25 | 25 | #include "qgsmaptopixel.h"
|
26 | 26 | #include "qgsmaplayer.h"
|
27 | 27 | #include "qgsmaplayerregistry.h"
|
| 28 | +#include "qgsmapsettings.h" |
28 | 29 | #include "qgsdistancearea.h"
|
29 | 30 | #include "qgsproject.h"
|
30 | 31 | #include "qgsvectorlayer.h"
|
@@ -957,149 +958,31 @@ QStringList& QgsMapRenderer::layerSet()
|
957 | 958 | return mLayerSet;
|
958 | 959 | }
|
959 | 960 |
|
| 961 | + |
960 | 962 | bool QgsMapRenderer::readXML( QDomNode & theNode )
|
961 | 963 | {
|
962 |
| - QDomNode myNode = theNode.namedItem( "units" ); |
963 |
| - QDomElement element = myNode.toElement(); |
964 |
| - |
965 |
| - // set units |
966 |
| - QGis::UnitType units; |
967 |
| - if ( "meters" == element.text() ) |
968 |
| - { |
969 |
| - units = QGis::Meters; |
970 |
| - } |
971 |
| - else if ( "feet" == element.text() ) |
972 |
| - { |
973 |
| - units = QGis::Feet; |
974 |
| - } |
975 |
| - else if ( "nautical miles" == element.text() ) |
976 |
| - { |
977 |
| - units = QGis::NauticalMiles; |
978 |
| - } |
979 |
| - else if ( "degrees" == element.text() ) |
980 |
| - { |
981 |
| - units = QGis::Degrees; |
982 |
| - } |
983 |
| - else if ( "unknown" == element.text() ) |
984 |
| - { |
985 |
| - units = QGis::UnknownUnit; |
986 |
| - } |
987 |
| - else |
988 |
| - { |
989 |
| - QgsDebugMsg( "Unknown map unit type " + element.text() ); |
990 |
| - units = QGis::Degrees; |
991 |
| - } |
992 |
| - setMapUnits( units ); |
993 |
| - |
994 |
| - // set projections flag |
995 |
| - QDomNode projNode = theNode.namedItem( "projections" ); |
996 |
| - element = projNode.toElement(); |
997 |
| - setProjectionsEnabled( element.text().toInt() ); |
998 |
| - |
999 |
| - // set destination CRS |
1000 |
| - QgsCoordinateReferenceSystem srs; |
1001 |
| - QDomNode srsNode = theNode.namedItem( "destinationsrs" ); |
1002 |
| - srs.readXML( srsNode ); |
1003 |
| - setDestinationCrs( srs ); |
1004 |
| - |
1005 |
| - // set extent |
1006 |
| - QgsRectangle aoi; |
1007 |
| - QDomNode extentNode = theNode.namedItem( "extent" ); |
1008 |
| - |
1009 |
| - QDomNode xminNode = extentNode.namedItem( "xmin" ); |
1010 |
| - QDomNode yminNode = extentNode.namedItem( "ymin" ); |
1011 |
| - QDomNode xmaxNode = extentNode.namedItem( "xmax" ); |
1012 |
| - QDomNode ymaxNode = extentNode.namedItem( "ymax" ); |
1013 |
| - |
1014 |
| - QDomElement exElement = xminNode.toElement(); |
1015 |
| - double xmin = exElement.text().toDouble(); |
1016 |
| - aoi.setXMinimum( xmin ); |
1017 |
| - |
1018 |
| - exElement = yminNode.toElement(); |
1019 |
| - double ymin = exElement.text().toDouble(); |
1020 |
| - aoi.setYMinimum( ymin ); |
1021 |
| - |
1022 |
| - exElement = xmaxNode.toElement(); |
1023 |
| - double xmax = exElement.text().toDouble(); |
1024 |
| - aoi.setXMaximum( xmax ); |
| 964 | + QgsMapSettings tmpSettings; |
| 965 | + tmpSettings.readXML( theNode ); |
1025 | 966 |
|
1026 |
| - exElement = ymaxNode.toElement(); |
1027 |
| - double ymax = exElement.text().toDouble(); |
1028 |
| - aoi.setYMaximum( ymax ); |
| 967 | + setMapUnits( tmpSettings.mapUnits() ); |
| 968 | + setExtent( tmpSettings.extent() ); |
| 969 | + setProjectionsEnabled( tmpSettings.hasCrsTransformEnabled() ); |
| 970 | + setDestinationCrs( tmpSettings.destinationCrs() ); |
1029 | 971 |
|
1030 |
| - setExtent( aoi ); |
1031 | 972 | return true;
|
1032 | 973 | }
|
1033 | 974 |
|
1034 | 975 | bool QgsMapRenderer::writeXML( QDomNode & theNode, QDomDocument & theDoc )
|
1035 | 976 | {
|
1036 |
| - // units |
1037 |
| - |
1038 |
| - QDomElement unitsNode = theDoc.createElement( "units" ); |
1039 |
| - theNode.appendChild( unitsNode ); |
1040 |
| - |
1041 |
| - QString unitsString; |
1042 |
| - |
1043 |
| - switch ( mapUnits() ) |
1044 |
| - { |
1045 |
| - case QGis::Meters: |
1046 |
| - unitsString = "meters"; |
1047 |
| - break; |
1048 |
| - case QGis::Feet: |
1049 |
| - unitsString = "feet"; |
1050 |
| - break; |
1051 |
| - case QGis::NauticalMiles: |
1052 |
| - unitsString = "nautical miles"; |
1053 |
| - break; |
1054 |
| - case QGis::Degrees: |
1055 |
| - unitsString = "degrees"; |
1056 |
| - break; |
1057 |
| - case QGis::UnknownUnit: |
1058 |
| - default: |
1059 |
| - unitsString = "unknown"; |
1060 |
| - break; |
1061 |
| - } |
1062 |
| - QDomText unitsText = theDoc.createTextNode( unitsString ); |
1063 |
| - unitsNode.appendChild( unitsText ); |
1064 |
| - |
1065 |
| - |
1066 |
| - // Write current view extents |
1067 |
| - QDomElement extentNode = theDoc.createElement( "extent" ); |
1068 |
| - theNode.appendChild( extentNode ); |
1069 |
| - |
1070 |
| - QDomElement xMin = theDoc.createElement( "xmin" ); |
1071 |
| - QDomElement yMin = theDoc.createElement( "ymin" ); |
1072 |
| - QDomElement xMax = theDoc.createElement( "xmax" ); |
1073 |
| - QDomElement yMax = theDoc.createElement( "ymax" ); |
1074 |
| - |
1075 |
| - QgsRectangle r = extent(); |
1076 |
| - QDomText xMinText = theDoc.createTextNode( qgsDoubleToString( r.xMinimum() ) ); |
1077 |
| - QDomText yMinText = theDoc.createTextNode( qgsDoubleToString( r.yMinimum() ) ); |
1078 |
| - QDomText xMaxText = theDoc.createTextNode( qgsDoubleToString( r.xMaximum() ) ); |
1079 |
| - QDomText yMaxText = theDoc.createTextNode( qgsDoubleToString( r.yMaximum() ) ); |
1080 |
| - |
1081 |
| - xMin.appendChild( xMinText ); |
1082 |
| - yMin.appendChild( yMinText ); |
1083 |
| - xMax.appendChild( xMaxText ); |
1084 |
| - yMax.appendChild( yMaxText ); |
1085 |
| - |
1086 |
| - extentNode.appendChild( xMin ); |
1087 |
| - extentNode.appendChild( yMin ); |
1088 |
| - extentNode.appendChild( xMax ); |
1089 |
| - extentNode.appendChild( yMax ); |
1090 |
| - |
1091 |
| - // projections enabled |
1092 |
| - QDomElement projNode = theDoc.createElement( "projections" ); |
1093 |
| - theNode.appendChild( projNode ); |
1094 |
| - |
1095 |
| - QDomText projText = theDoc.createTextNode( QString::number( hasCrsTransformEnabled() ) ); |
1096 |
| - projNode.appendChild( projText ); |
1097 |
| - |
1098 |
| - // destination CRS |
1099 |
| - QDomElement srsNode = theDoc.createElement( "destinationsrs" ); |
1100 |
| - theNode.appendChild( srsNode ); |
1101 |
| - destinationCrs().writeXML( srsNode, theDoc ); |
1102 |
| - |
| 977 | + QgsMapSettings tmpSettings; |
| 978 | + tmpSettings.setOutputDpi( outputDpi() ); |
| 979 | + tmpSettings.setOutputSize( outputSize() ); |
| 980 | + tmpSettings.setMapUnits( mapUnits() ); |
| 981 | + tmpSettings.setExtent( extent() ); |
| 982 | + tmpSettings.setProjectionsEnabled( hasCrsTransformEnabled() ); |
| 983 | + tmpSettings.setDestinationCrs( destinationCrs() ); |
| 984 | + |
| 985 | + tmpSettings.writeXML( theNode, theDoc ); |
1103 | 986 | return true;
|
1104 | 987 | }
|
1105 | 988 |
|
|
0 commit comments