mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
Merge pull request #29970 from elpaso/bugfix-gh29767-server-wfs-double-virtual-fields
Server WFS fix describefeaturetype double virtual fields
This commit is contained in:
commit
bede19662e
@ -291,7 +291,7 @@ namespace QgsWfs
|
||||
}
|
||||
else if ( attributeType == QVariant::Double )
|
||||
{
|
||||
if ( field.length() != 0 && field.precision() == 0 )
|
||||
if ( field.length() > 0 && field.precision() == 0 )
|
||||
attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "integer" ) );
|
||||
else
|
||||
attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "decimal" ) );
|
||||
|
@ -454,6 +454,13 @@ class TestQgsServerWFS(QgsServerTestBase):
|
||||
self.wfs_request_compare("DescribeFeatureType", '1.1.0', "TYPENAME=does_not_exist&",
|
||||
'wfs_describeFeatureType_1_1_0_typename_wrong', project_file=project_file)
|
||||
|
||||
def test_describeFeatureTypeVirtualFields(self):
|
||||
"""Test DescribeFeatureType with virtual fields: bug GH-29767"""
|
||||
|
||||
project_file = "bug_gh29767_double_vfield.qgs"
|
||||
self.wfs_request_compare("DescribeFeatureType", '1.1.0', "",
|
||||
'wfs_describeFeatureType_1_1_0_virtual_fields', project_file=project_file)
|
||||
|
||||
def test_getFeatureFeature_0_nulls(self):
|
||||
"""Test that 0 and null in integer columns are reported correctly"""
|
||||
|
||||
|
711
tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs
vendored
Normal file
711
tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs
vendored
Normal file
@ -0,0 +1,711 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis version="3.7.0-Master" projectname="QGIS Test Project">
|
||||
<homePath path=""/>
|
||||
<title>QGIS Test Project</title>
|
||||
<autotransaction active="0"/>
|
||||
<evaluateDefaultValues active="0"/>
|
||||
<trust active="0"/>
|
||||
<projectCrs>
|
||||
<spatialrefsys>
|
||||
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||
<srsid>3452</srsid>
|
||||
<srid>4326</srid>
|
||||
<authid>EPSG:4326</authid>
|
||||
<description>WGS 84</description>
|
||||
<projectionacronym>longlat</projectionacronym>
|
||||
<ellipsoidacronym>WGS84</ellipsoidacronym>
|
||||
<geographicflag>true</geographicflag>
|
||||
</spatialrefsys>
|
||||
</projectCrs>
|
||||
<layer-tree-group>
|
||||
<customproperties/>
|
||||
<layer-tree-layer source="./testlayer.shp" checked="Qt::Checked" id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" expanded="1" providerKey="ogr" name="testlayer">
|
||||
<customproperties/>
|
||||
</layer-tree-layer>
|
||||
<custom-order enabled="0">
|
||||
<item>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</item>
|
||||
</custom-order>
|
||||
</layer-tree-group>
|
||||
<snapping-settings intersection-snapping="0" enabled="0" unit="2" mode="1" tolerance="0" type="2">
|
||||
<individual-layer-settings>
|
||||
<layer-setting id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" enabled="1" units="1" tolerance="12" type="1"/>
|
||||
</individual-layer-settings>
|
||||
</snapping-settings>
|
||||
<relations/>
|
||||
<mapcanvas annotationsVisible="1" name="theMapCanvas">
|
||||
<units>degrees</units>
|
||||
<extent>
|
||||
<xmin>17.92123882869385909</xmin>
|
||||
<ymin>30.1492204088525888</ymin>
|
||||
<xmax>18.0486921925404431</xmax>
|
||||
<ymax>30.25992437587047235</ymax>
|
||||
</extent>
|
||||
<rotation>0</rotation>
|
||||
<destinationsrs>
|
||||
<spatialrefsys>
|
||||
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||
<srsid>3452</srsid>
|
||||
<srid>4326</srid>
|
||||
<authid>EPSG:4326</authid>
|
||||
<description>WGS 84</description>
|
||||
<projectionacronym>longlat</projectionacronym>
|
||||
<ellipsoidacronym>WGS84</ellipsoidacronym>
|
||||
<geographicflag>true</geographicflag>
|
||||
</spatialrefsys>
|
||||
</destinationsrs>
|
||||
<rendermaptile>0</rendermaptile>
|
||||
<expressionContextScope/>
|
||||
</mapcanvas>
|
||||
<legend updateDrawingOrder="true">
|
||||
<legendlayer checked="Qt::Checked" open="true" showFeatureCount="0" drawingOrder="-1" name="testlayer">
|
||||
<filegroup hidden="false" open="true">
|
||||
<legendlayerfile layerid="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" visible="1" isInOverview="0"/>
|
||||
</filegroup>
|
||||
</legendlayer>
|
||||
</legend>
|
||||
<mapViewDocks/>
|
||||
<projectlayers>
|
||||
<maplayer simplifyAlgorithm="0" maxScale="0" refreshOnNotifyMessage="" autoRefreshTime="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" labelsEnabled="0" geometry="Point" minScale="1e+08" styleCategories="AllStyleCategories" refreshOnNotifyEnabled="0" simplifyLocal="1" simplifyMaxScale="1" type="vector" wkbType="Point" simplifyDrawingTol="1" simplifyDrawingHints="0" readOnly="0">
|
||||
<extent>
|
||||
<xmin>8.20345930703634352</xmin>
|
||||
<ymin>44.90139483904469131</ymin>
|
||||
<xmax>8.20354699399348775</xmax>
|
||||
<ymax>44.90148252600183554</ymax>
|
||||
</extent>
|
||||
<id>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</id>
|
||||
<datasource>./testlayer.shp</datasource>
|
||||
<shortname>layer_with_short_name</shortname>
|
||||
<title>A Layer with a short name</title>
|
||||
<abstract>A Layer with an abstract</abstract>
|
||||
<keywordList>
|
||||
<value></value>
|
||||
</keywordList>
|
||||
<layername>testlayer</layername>
|
||||
<srs>
|
||||
<spatialrefsys>
|
||||
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||
<srsid>3452</srsid>
|
||||
<srid>4326</srid>
|
||||
<authid>EPSG:4326</authid>
|
||||
<description>WGS 84</description>
|
||||
<projectionacronym>longlat</projectionacronym>
|
||||
<ellipsoidacronym>WGS84</ellipsoidacronym>
|
||||
<geographicflag>true</geographicflag>
|
||||
</spatialrefsys>
|
||||
</srs>
|
||||
<resourceMetadata>
|
||||
<identifier></identifier>
|
||||
<parentidentifier></parentidentifier>
|
||||
<language></language>
|
||||
<type></type>
|
||||
<title></title>
|
||||
<abstract></abstract>
|
||||
<contact>
|
||||
<name></name>
|
||||
<organization></organization>
|
||||
<position></position>
|
||||
<voice></voice>
|
||||
<fax></fax>
|
||||
<email></email>
|
||||
<role></role>
|
||||
</contact>
|
||||
<links/>
|
||||
<fees></fees>
|
||||
<encoding></encoding>
|
||||
<crs>
|
||||
<spatialrefsys>
|
||||
<proj4></proj4>
|
||||
<srsid>0</srsid>
|
||||
<srid>0</srid>
|
||||
<authid></authid>
|
||||
<description></description>
|
||||
<projectionacronym></projectionacronym>
|
||||
<ellipsoidacronym></ellipsoidacronym>
|
||||
<geographicflag>true</geographicflag>
|
||||
</spatialrefsys>
|
||||
</crs>
|
||||
<extent>
|
||||
<spatial miny="0" dimensions="2" minx="0" minz="0" maxx="0" maxy="0" crs="" maxz="0"/>
|
||||
<temporal>
|
||||
<period>
|
||||
<start></start>
|
||||
<end></end>
|
||||
</period>
|
||||
</temporal>
|
||||
</extent>
|
||||
</resourceMetadata>
|
||||
<provider encoding="UTF-8">ogr</provider>
|
||||
<vectorjoins/>
|
||||
<layerDependencies/>
|
||||
<dataDependencies/>
|
||||
<legend type="default-vector"/>
|
||||
<expressionfields>
|
||||
<field expression=" "id" * 3.14" subType="0" length="-1" precision="0" comment="" typeName="double precision" name="virtdbl" type="6"/>
|
||||
<field expression=" "id" * 2" subType="0" length="10" precision="0" comment="" typeName="integer" name="virtint" type="2"/>
|
||||
</expressionfields>
|
||||
<map-layer-style-manager current="default">
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 forceraster="0" enableorderby="0" symbollevels="0" type="singleSymbol">
|
||||
<symbols>
|
||||
<symbol clip_to_extent="1" alpha="1" name="0" force_rhr="0" type="marker">
|
||||
<layer locked="0" pass="0" class="SimpleMarker" enabled="1">
|
||||
<prop k="angle" v="0"/>
|
||||
<prop k="color" v="152,125,183,255"/>
|
||||
<prop k="horizontal_anchor_point" v="1"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="name" v="circle"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="35,35,35,255"/>
|
||||
<prop k="outline_style" v="solid"/>
|
||||
<prop k="outline_width" v="0"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="scale_method" v="diameter"/>
|
||||
<prop k="size" v="2"/>
|
||||
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="size_unit" v="MM"/>
|
||||
<prop k="vertical_anchor_point" v="1"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
</renderer-v2>
|
||||
<customproperties>
|
||||
<property key="embeddedWidgets/count" value="0"/>
|
||||
<property key="variableNames"/>
|
||||
<property key="variableValues"/>
|
||||
</customproperties>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerOpacity>1</layerOpacity>
|
||||
<SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
|
||||
<DiagramCategory width="15" enabled="0" sizeType="MM" barWidth="5" penAlpha="255" opacity="1" lineSizeType="MM" penColor="#000000" backgroundAlpha="255" lineSizeScale="3x:0,0,0,0,0,0" labelPlacementMethod="XHeight" scaleDependency="Area" height="15" backgroundColor="#ffffff" sizeScale="3x:0,0,0,0,0,0" rotationOffset="270" diagramOrientation="Up" minimumSize="0" scaleBasedVisibility="0" maxScaleDenominator="1e+08" penWidth="0" minScaleDenominator="0">
|
||||
<fontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
|
||||
<attribute field="" label="" color="#000000"/>
|
||||
</DiagramCategory>
|
||||
</SingleCategoryDiagramRenderer>
|
||||
<DiagramLayerSettings placement="0" priority="0" zIndex="0" obstacle="0" dist="0" linePlacementFlags="18" showAll="1">
|
||||
<properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</properties>
|
||||
</DiagramLayerSettings>
|
||||
<geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
|
||||
<activeChecks/>
|
||||
<checkConfiguration/>
|
||||
</geometryOptions>
|
||||
<fieldConfiguration>
|
||||
<field name="id">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="name">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="utf8nameè">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="virtdbl">
|
||||
<editWidget type="">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="virtint">
|
||||
<editWidget type="">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
</fieldConfiguration>
|
||||
<aliases>
|
||||
<alias field="id" index="0" name=""/>
|
||||
<alias field="name" index="1" name=""/>
|
||||
<alias field="utf8nameè" index="2" name=""/>
|
||||
<alias field="virtdbl" index="3" name=""/>
|
||||
<alias field="virtint" index="4" name=""/>
|
||||
</aliases>
|
||||
<excludeAttributesWMS/>
|
||||
<excludeAttributesWFS/>
|
||||
<defaults>
|
||||
<default expression="" field="id" applyOnUpdate="0"/>
|
||||
<default expression="" field="name" applyOnUpdate="0"/>
|
||||
<default expression="" field="utf8nameè" applyOnUpdate="0"/>
|
||||
<default expression="" field="virtdbl" applyOnUpdate="0"/>
|
||||
<default expression="" field="virtint" applyOnUpdate="0"/>
|
||||
</defaults>
|
||||
<constraints>
|
||||
<constraint notnull_strength="0" field="id" unique_strength="0" exp_strength="0" constraints="0"/>
|
||||
<constraint notnull_strength="0" field="name" unique_strength="0" exp_strength="0" constraints="0"/>
|
||||
<constraint notnull_strength="0" field="utf8nameè" unique_strength="0" exp_strength="0" constraints="0"/>
|
||||
<constraint notnull_strength="0" field="virtdbl" unique_strength="0" exp_strength="0" constraints="0"/>
|
||||
<constraint notnull_strength="0" field="virtint" unique_strength="0" exp_strength="0" constraints="0"/>
|
||||
</constraints>
|
||||
<constraintExpressions>
|
||||
<constraint desc="" field="id" exp=""/>
|
||||
<constraint desc="" field="name" exp=""/>
|
||||
<constraint desc="" field="utf8nameè" exp=""/>
|
||||
<constraint desc="" field="virtdbl" exp=""/>
|
||||
<constraint desc="" field="virtint" exp=""/>
|
||||
</constraintExpressions>
|
||||
<expressionfields>
|
||||
<field expression=" "id" * 3.14" subType="0" length="-1" precision="0" comment="" typeName="double precision" name="virtdbl" type="6"/>
|
||||
<field expression=" "id" * 2" subType="0" length="10" precision="0" comment="" typeName="integer" name="virtint" type="2"/>
|
||||
</expressionfields>
|
||||
<attributeactions>
|
||||
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
|
||||
</attributeactions>
|
||||
<attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression="">
|
||||
<columns>
|
||||
<column hidden="0" width="-1" name="id" type="field"/>
|
||||
<column hidden="0" width="-1" name="name" type="field"/>
|
||||
<column hidden="0" width="-1" name="utf8nameè" type="field"/>
|
||||
<column hidden="1" width="-1" type="actions"/>
|
||||
</columns>
|
||||
</attributetableconfig>
|
||||
<conditionalstyles>
|
||||
<rowstyles/>
|
||||
<fieldstyles/>
|
||||
</conditionalstyles>
|
||||
<editform tolerant="1">.</editform>
|
||||
<editforminit/>
|
||||
<editforminitcodesource>0</editforminitcodesource>
|
||||
<editforminitfilepath></editforminitfilepath>
|
||||
<editforminitcode><![CDATA[]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
<editable>
|
||||
<field editable="1" name="id"/>
|
||||
<field editable="1" name="name"/>
|
||||
<field editable="1" name="utf8nameè"/>
|
||||
</editable>
|
||||
<labelOnTop>
|
||||
<field name="id" labelOnTop="0"/>
|
||||
<field name="name" labelOnTop="0"/>
|
||||
<field name="utf8nameè" labelOnTop="0"/>
|
||||
</labelOnTop>
|
||||
<widgets/>
|
||||
<previewExpression>id</previewExpression>
|
||||
<mapTip></mapTip>
|
||||
</maplayer>
|
||||
</projectlayers>
|
||||
<layerorder>
|
||||
<layer id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a"/>
|
||||
</layerorder>
|
||||
<properties>
|
||||
<DefaultStyles>
|
||||
<AlphaInt type="int">255</AlphaInt>
|
||||
<ColorRamp type="QString"></ColorRamp>
|
||||
<Fill type="QString"></Fill>
|
||||
<Line type="QString"></Line>
|
||||
<Marker type="QString"></Marker>
|
||||
<Opacity type="double">1</Opacity>
|
||||
<RandomColors type="bool">true</RandomColors>
|
||||
</DefaultStyles>
|
||||
<Digitizing>
|
||||
<AvoidIntersectionsList type="QStringList"/>
|
||||
<DefaultSnapTolerance type="double">0</DefaultSnapTolerance>
|
||||
<DefaultSnapToleranceUnit type="int">2</DefaultSnapToleranceUnit>
|
||||
<DefaultSnapType type="QString">off</DefaultSnapType>
|
||||
<LayerSnapToList type="QStringList"/>
|
||||
<LayerSnappingEnabledList type="QStringList"/>
|
||||
<LayerSnappingList type="QStringList"/>
|
||||
<LayerSnappingToleranceList type="QStringList"/>
|
||||
<LayerSnappingToleranceUnitList type="QStringList"/>
|
||||
<SnappingMode type="QString">current_layer</SnappingMode>
|
||||
</Digitizing>
|
||||
<Gui>
|
||||
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
|
||||
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
|
||||
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
|
||||
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
|
||||
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
|
||||
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
|
||||
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
|
||||
</Gui>
|
||||
<Identify>
|
||||
<disabledLayers type="QStringList">
|
||||
<value>testlayer_0b835118_a5d5_4255_b5dd_f42253c0a4a0</value>
|
||||
</disabledLayers>
|
||||
</Identify>
|
||||
<Legend>
|
||||
<filterByMap type="bool">false</filterByMap>
|
||||
</Legend>
|
||||
<Macros>
|
||||
<pythonCode type="QString"></pythonCode>
|
||||
</Macros>
|
||||
<Measure>
|
||||
<Ellipsoid type="QString">WGS84</Ellipsoid>
|
||||
</Measure>
|
||||
<Measurement>
|
||||
<AreaUnits type="QString">m2</AreaUnits>
|
||||
<DistanceUnits type="QString">meters</DistanceUnits>
|
||||
</Measurement>
|
||||
<PAL>
|
||||
<CandidatesLine type="int">50</CandidatesLine>
|
||||
<CandidatesPoint type="int">16</CandidatesPoint>
|
||||
<CandidatesPolygon type="int">30</CandidatesPolygon>
|
||||
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
|
||||
<DrawRectOnly type="bool">false</DrawRectOnly>
|
||||
<SearchMethod type="int">0</SearchMethod>
|
||||
<ShowingAllLabels type="bool">false</ShowingAllLabels>
|
||||
<ShowingCandidates type="bool">false</ShowingCandidates>
|
||||
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
|
||||
<TextFormat type="int">0</TextFormat>
|
||||
</PAL>
|
||||
<Paths>
|
||||
<Absolute type="bool">false</Absolute>
|
||||
</Paths>
|
||||
<PositionPrecision>
|
||||
<Automatic type="bool">true</Automatic>
|
||||
<DecimalPlaces type="int">2</DecimalPlaces>
|
||||
<DegreeFormat type="QString">D</DegreeFormat>
|
||||
</PositionPrecision>
|
||||
<RequiredLayers>
|
||||
<Layers type="QStringList"/>
|
||||
</RequiredLayers>
|
||||
<SpatialRefSys>
|
||||
<ProjectCRSID type="int">3452</ProjectCRSID>
|
||||
<ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
|
||||
<ProjectCrs type="QString">EPSG:4326</ProjectCrs>
|
||||
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
|
||||
</SpatialRefSys>
|
||||
<Variables>
|
||||
<variableNames type="QStringList"/>
|
||||
<variableValues type="QStringList"/>
|
||||
</Variables>
|
||||
<WCSLayers type="QStringList"/>
|
||||
<WCSUrl type="QString"></WCSUrl>
|
||||
<WFSLayers type="QStringList">
|
||||
<value>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</value>
|
||||
</WFSLayers>
|
||||
<WFSLayersPrecision>
|
||||
<testlayer20150528120452665 type="int">8</testlayer20150528120452665>
|
||||
<testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a type="int">8</testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a>
|
||||
</WFSLayersPrecision>
|
||||
<WFSTLayers>
|
||||
<Delete type="QStringList"/>
|
||||
<Insert type="QStringList"/>
|
||||
<Update type="QStringList"/>
|
||||
</WFSTLayers>
|
||||
<WFSUrl type="QString"></WFSUrl>
|
||||
<WMSAccessConstraints type="QString">None</WMSAccessConstraints>
|
||||
<WMSAddWktGeometry type="bool">true</WMSAddWktGeometry>
|
||||
<WMSContactMail type="QString">elpaso@itopen.it</WMSContactMail>
|
||||
<WMSContactOrganization type="QString">QGIS dev team</WMSContactOrganization>
|
||||
<WMSContactPerson type="QString">Alessandro Pasotti</WMSContactPerson>
|
||||
<WMSContactPhone type="QString"></WMSContactPhone>
|
||||
<WMSContactPosition type="QString"></WMSContactPosition>
|
||||
<WMSDefaultMapUnitsPerMm type="double">1</WMSDefaultMapUnitsPerMm>
|
||||
<WMSExtent type="QStringList">
|
||||
<value>8.20315414376310059</value>
|
||||
<value>44.901236559338642</value>
|
||||
<value>8.204164917965862</value>
|
||||
<value>44.90159838674664172</value>
|
||||
</WMSExtent>
|
||||
<WMSFees type="QString">conditions unknown</WMSFees>
|
||||
<WMSImageQuality type="int">90</WMSImageQuality>
|
||||
<WMSKeywordList type="QStringList">
|
||||
<value></value>
|
||||
</WMSKeywordList>
|
||||
<WMSMaxAtlasFeatures type="int">1</WMSMaxAtlasFeatures>
|
||||
<WMSOnlineResource type="QString"></WMSOnlineResource>
|
||||
<WMSPrecision type="QString">4</WMSPrecision>
|
||||
<WMSRequestDefinedDataSources type="bool">false</WMSRequestDefinedDataSources>
|
||||
<WMSRestrictedComposers type="QStringList"/>
|
||||
<WMSRestrictedLayers type="QStringList"/>
|
||||
<WMSRootName type="QString"></WMSRootName>
|
||||
<WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
|
||||
<WMSServiceAbstract type="QString">Some UTF8 text èòù</WMSServiceAbstract>
|
||||
<WMSServiceCapabilities type="bool">true</WMSServiceCapabilities>
|
||||
<WMSServiceTitle type="QString">QGIS TestProject</WMSServiceTitle>
|
||||
<WMSUrl type="QString"></WMSUrl>
|
||||
<WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
|
||||
<WMTSGrids>
|
||||
<CRS type="QStringList"/>
|
||||
<Config type="QStringList"/>
|
||||
</WMTSGrids>
|
||||
<WMTSJpegLayers>
|
||||
<Group type="QStringList"/>
|
||||
<Layer type="QStringList"/>
|
||||
<Project type="bool">false</Project>
|
||||
</WMTSJpegLayers>
|
||||
<WMTSLayers>
|
||||
<Group type="QStringList"/>
|
||||
<Layer type="QStringList"/>
|
||||
<Project type="bool">false</Project>
|
||||
</WMTSLayers>
|
||||
<WMTSMinScale type="int">5000</WMTSMinScale>
|
||||
<WMTSPngLayers>
|
||||
<Group type="QStringList"/>
|
||||
<Layer type="QStringList"/>
|
||||
<Project type="bool">false</Project>
|
||||
</WMTSPngLayers>
|
||||
<WMTSUrl type="QString"></WMTSUrl>
|
||||
</properties>
|
||||
<visibility-presets/>
|
||||
<transformContext/>
|
||||
<projectMetadata>
|
||||
<identifier></identifier>
|
||||
<parentidentifier></parentidentifier>
|
||||
<language></language>
|
||||
<type></type>
|
||||
<title>QGIS Test Project</title>
|
||||
<abstract></abstract>
|
||||
<contact>
|
||||
<name></name>
|
||||
<organization></organization>
|
||||
<position></position>
|
||||
<voice></voice>
|
||||
<fax></fax>
|
||||
<email></email>
|
||||
<role></role>
|
||||
</contact>
|
||||
<links/>
|
||||
<author></author>
|
||||
<creation>2000-01-01T00:00:00</creation>
|
||||
</projectMetadata>
|
||||
<Annotations/>
|
||||
<Layouts>
|
||||
<Layout worldFileMap="" printResolution="300" units="mm" name="mytemplate">
|
||||
<Snapper snapToItems="1" snapToGrid="0" snapToGuides="1" tolerance="5"/>
|
||||
<Grid offsetY="0" resUnits="mm" offsetX="0" resolution="10" offsetUnits="mm"/>
|
||||
<PageCollection>
|
||||
<symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="fill">
|
||||
<layer locked="0" pass="0" class="SimpleFill" enabled="1">
|
||||
<prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="color" v="255,255,255,255"/>
|
||||
<prop k="joinstyle" v="miter"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="0,0,0,255"/>
|
||||
<prop k="outline_style" v="no"/>
|
||||
<prop k="outline_width" v="0.26"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="style" v="solid"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
<LayoutItem visibility="1" opacity="1" id="" background="true" positionOnPage="0,0,mm" zValue="0" uuid="{45febe5f-bfdd-455a-aef5-c096b4677622}" position="0,0,mm" templateUuid="{45febe5f-bfdd-455a-aef5-c096b4677622}" groupUuid="" frameJoinStyle="miter" size="297,210,mm" frame="false" type="65638" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0">
|
||||
<FrameColor green="0" red="0" alpha="255" blue="0"/>
|
||||
<BackgroundColor green="255" red="255" alpha="255" blue="255"/>
|
||||
<LayoutObject>
|
||||
<dataDefinedProperties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</dataDefinedProperties>
|
||||
<customproperties/>
|
||||
</LayoutObject>
|
||||
</LayoutItem>
|
||||
<GuideCollection visible="1"/>
|
||||
</PageCollection>
|
||||
<LayoutItem followPreset="false" keepLayerSet="false" visibility="1" opacity="1" id="" background="true" mapRotation="0" positionOnPage="126,143,mm" zValue="2" followPresetName="" uuid="{5ed7a90f-8af2-4535-a15e-e18a7f6c5d1f}" position="126,143,mm" templateUuid="{5ed7a90f-8af2-4535-a15e-e18a7f6c5d1f}" groupUuid="" labelMargin="0,mm" frameJoinStyle="miter" size="61,26,mm" frame="false" type="65639" drawCanvasItems="true" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0" mapFlags="1">
|
||||
<FrameColor green="0" red="0" alpha="255" blue="0"/>
|
||||
<BackgroundColor green="255" red="255" alpha="255" blue="255"/>
|
||||
<LayoutObject>
|
||||
<dataDefinedProperties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</dataDefinedProperties>
|
||||
<customproperties/>
|
||||
</LayoutObject>
|
||||
<Extent xmin="8.20128754650006186" xmax="8.20679772684772146" ymax="44.90260402302108389" ymin="44.90025542156142535"/>
|
||||
<LayerSet/>
|
||||
<ComposerMapGrid rightAnnotationDirection="0" intervalY="0" gridFramePenThickness="0.5" rightFrameDivisions="0" frameFillColor2="0,0,0,255" topAnnotationPosition="1" showAnnotation="0" unit="0" offsetY="0" show="0" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" gridFrameWidth="2" gridStyle="0" gridFrameStyle="0" annotationFontColor="0,0,0,255" leftAnnotationDirection="0" annotationFormat="0" gridFrameMargin="0" offsetX="0" annotationPrecision="3" topAnnotationDisplay="0" rightAnnotationDisplay="0" bottomAnnotationDisplay="0" gridFrameSideFlags="15" bottomAnnotationDirection="0" leftAnnotationPosition="1" bottomAnnotationPosition="1" topAnnotationDirection="0" bottomFrameDivisions="0" name="Grille 1" leftFrameDivisions="0" rightAnnotationPosition="1" intervalX="0" uuid="{ca78854d-b53f-4d8b-97bd-6bbf0df72ad0}" frameFillColor1="255,255,255,255" annotationExpression="" position="3" frameAnnotationDistance="1" crossLength="3" blendMode="0" topFrameDivisions="0">
|
||||
<lineStyle>
|
||||
<symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="line">
|
||||
<layer locked="0" pass="0" class="SimpleLine" enabled="1">
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="0,0,0,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="0"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</lineStyle>
|
||||
<markerStyle>
|
||||
<symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="marker">
|
||||
<layer locked="0" pass="0" class="SimpleMarker" enabled="1">
|
||||
<prop k="angle" v="0"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="horizontal_anchor_point" v="1"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="name" v="circle"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="35,35,35,255"/>
|
||||
<prop k="outline_style" v="solid"/>
|
||||
<prop k="outline_width" v="0"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="scale_method" v="diameter"/>
|
||||
<prop k="size" v="2"/>
|
||||
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="size_unit" v="MM"/>
|
||||
<prop k="vertical_anchor_point" v="1"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</markerStyle>
|
||||
<annotationFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
|
||||
</ComposerMapGrid>
|
||||
<AtlasMap margin="0.10000000000000001" scalingMode="2" atlasDriven="0"/>
|
||||
<labelBlockingItems/>
|
||||
</LayoutItem>
|
||||
<LayoutItem followPreset="false" keepLayerSet="false" visibility="1" opacity="1" id="" background="true" mapRotation="0" positionOnPage="98.7716,20.1872,mm" zValue="1" followPresetName="" uuid="{8fec18d6-8ba0-47d6-914e-3daffe8a8633}" position="98.7716,20.1872,mm" templateUuid="{8fec18d6-8ba0-47d6-914e-3daffe8a8633}" groupUuid="" labelMargin="0,mm" frameJoinStyle="miter" size="87,103,mm" frame="false" type="65639" drawCanvasItems="true" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0" mapFlags="1">
|
||||
<FrameColor green="0" red="0" alpha="255" blue="0"/>
|
||||
<BackgroundColor green="255" red="255" alpha="255" blue="255"/>
|
||||
<LayoutObject>
|
||||
<dataDefinedProperties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</dataDefinedProperties>
|
||||
<customproperties/>
|
||||
</LayoutObject>
|
||||
<Extent xmin="8.20202108826836884" xmax="8.20606418507941449" ymax="44.9038230497138855" ymin="44.89903639486862374"/>
|
||||
<LayerSet/>
|
||||
<ComposerMapGrid rightAnnotationDirection="0" intervalY="0" gridFramePenThickness="0.5" rightFrameDivisions="0" frameFillColor2="0,0,0,255" topAnnotationPosition="1" showAnnotation="0" unit="0" offsetY="0" show="0" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" gridFrameWidth="2" gridStyle="0" gridFrameStyle="0" annotationFontColor="0,0,0,255" leftAnnotationDirection="0" annotationFormat="0" gridFrameMargin="0" offsetX="0" annotationPrecision="3" topAnnotationDisplay="0" rightAnnotationDisplay="0" bottomAnnotationDisplay="0" gridFrameSideFlags="15" bottomAnnotationDirection="0" leftAnnotationPosition="1" bottomAnnotationPosition="1" topAnnotationDirection="0" bottomFrameDivisions="0" name="Grille 1" leftFrameDivisions="0" rightAnnotationPosition="1" intervalX="0" uuid="{94630841-1b07-4bc2-9cf7-1dce50a01a3e}" frameFillColor1="255,255,255,255" annotationExpression="" position="3" frameAnnotationDistance="1" crossLength="3" blendMode="0" topFrameDivisions="0">
|
||||
<lineStyle>
|
||||
<symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="line">
|
||||
<layer locked="0" pass="0" class="SimpleLine" enabled="1">
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="0,0,0,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="0"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</lineStyle>
|
||||
<markerStyle>
|
||||
<symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="marker">
|
||||
<layer locked="0" pass="0" class="SimpleMarker" enabled="1">
|
||||
<prop k="angle" v="0"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="horizontal_anchor_point" v="1"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="name" v="circle"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="35,35,35,255"/>
|
||||
<prop k="outline_style" v="solid"/>
|
||||
<prop k="outline_width" v="0"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="scale_method" v="diameter"/>
|
||||
<prop k="size" v="2"/>
|
||||
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="size_unit" v="MM"/>
|
||||
<prop k="vertical_anchor_point" v="1"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option value="" name="name" type="QString"/>
|
||||
<Option name="properties"/>
|
||||
<Option value="collection" name="type" type="QString"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</markerStyle>
|
||||
<annotationFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
|
||||
</ComposerMapGrid>
|
||||
<AtlasMap margin="0.10000000000000001" scalingMode="2" atlasDriven="0"/>
|
||||
<labelBlockingItems/>
|
||||
</LayoutItem>
|
||||
<customproperties/>
|
||||
<Atlas pageNameExpression="" sortFeatures="0" filenamePattern="'output_'||@atlas_featurenumber" hideCoverage="0" enabled="0" coverageLayer="" filterFeatures="0"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</qgis>
|
21
tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt
vendored
Normal file
21
tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
Content-Type: text/xml; charset=utf-8
|
||||
|
||||
<schema xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.qgis.org/gml" xmlns:qgs="http://www.qgis.org/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ogc="http://www.opengis.net/ogc" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"/>
|
||||
<element type="qgs:layer_with_short_nameType" name="layer_with_short_name" substitutionGroup="gml:_Feature"/>
|
||||
<complexType name="layer_with_short_nameType">
|
||||
<complexContent>
|
||||
<extension base="gml:AbstractFeatureType">
|
||||
<sequence>
|
||||
<element maxOccurs="1" type="gml:PointPropertyType" minOccurs="0" name="geometry"/>
|
||||
<element type="long" nillable="true" name="id"/>
|
||||
<element type="string" nillable="true" name="name"/>
|
||||
<element type="string" nillable="true" name="utf8nameè"/>
|
||||
<element type="decimal" nillable="true" name="virtdbl"/>
|
||||
<element type="int" nillable="true" name="virtint"/>
|
||||
</sequence>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
</schema>
|
Loading…
x
Reference in New Issue
Block a user