|
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