Skip to content

Commit 9d41d20

Browse files
author
mhugent
committed
BBOX option for wfs
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@12993 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 5c6ae04 commit 9d41d20

File tree

2 files changed

+88
-78
lines changed

2 files changed

+88
-78
lines changed

src/plugins/wfs/qgswfssourceselect.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "qgsproject.h"
2525
#include "qgscoordinatereferencesystem.h"
2626
#include "qgslogger.h"
27+
#include "qgsmapcanvas.h" //for current view extent
2728
#include <QDomDocument>
2829
#include <QListWidgetItem>
2930
#include <QMessageBox>
@@ -366,7 +367,15 @@ void QgsWFSSourceSelect::addLayer()
366367
//add a wfs layer to the map
367368
if ( mIface )
368369
{
369-
mIface->addVectorLayer( uri + "SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=" + typeName + crsString, typeName, "WFS" );
370+
//get current extent
371+
QgsMapCanvas* canvas = mIface->mapCanvas();
372+
QString bBoxString;
373+
if ( canvas && mBboxCheckBox->isChecked() )
374+
{
375+
QgsRectangle currentExtent = canvas->extent();
376+
bBoxString = QString( "&BBOX=%1,%2,%3,%4" ).arg( currentExtent.xMinimum() ).arg( currentExtent.yMinimum() ).arg( currentExtent.xMaximum() ).arg( currentExtent.yMaximum() );
377+
}
378+
mIface->addVectorLayer( uri + "SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=" + typeName + crsString + bBoxString, typeName, "WFS" );
370379
}
371380
accept();
372381
}

src/plugins/wfs/qgswfssourceselectbase.ui

Lines changed: 78 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,84 @@
77
<x>0</x>
88
<y>0</y>
99
<width>577</width>
10-
<height>444</height>
10+
<height>503</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Add WFS Layer from a Server</string>
1515
</property>
16-
<layout class="QGridLayout">
17-
<property name="margin">
18-
<number>9</number>
19-
</property>
20-
<property name="spacing">
21-
<number>6</number>
22-
</property>
16+
<layout class="QGridLayout" name="gridLayout">
17+
<item row="0" column="0">
18+
<widget class="QGroupBox" name="GroupBox1">
19+
<property name="title">
20+
<string>Server connections</string>
21+
</property>
22+
<layout class="QGridLayout">
23+
<property name="margin">
24+
<number>9</number>
25+
</property>
26+
<property name="spacing">
27+
<number>6</number>
28+
</property>
29+
<item row="1" column="1">
30+
<widget class="QPushButton" name="btnNew">
31+
<property name="text">
32+
<string>&amp;New</string>
33+
</property>
34+
</widget>
35+
</item>
36+
<item row="1" column="3">
37+
<widget class="QPushButton" name="btnDelete">
38+
<property name="enabled">
39+
<bool>false</bool>
40+
</property>
41+
<property name="text">
42+
<string>Delete</string>
43+
</property>
44+
</widget>
45+
</item>
46+
<item row="1" column="2">
47+
<widget class="QPushButton" name="btnEdit">
48+
<property name="enabled">
49+
<bool>false</bool>
50+
</property>
51+
<property name="text">
52+
<string>Edit</string>
53+
</property>
54+
</widget>
55+
</item>
56+
<item row="1" column="4">
57+
<spacer>
58+
<property name="orientation">
59+
<enum>Qt::Horizontal</enum>
60+
</property>
61+
<property name="sizeType">
62+
<enum>QSizePolicy::Expanding</enum>
63+
</property>
64+
<property name="sizeHint" stdset="0">
65+
<size>
66+
<width>171</width>
67+
<height>30</height>
68+
</size>
69+
</property>
70+
</spacer>
71+
</item>
72+
<item row="1" column="0">
73+
<widget class="QPushButton" name="btnConnect">
74+
<property name="enabled">
75+
<bool>false</bool>
76+
</property>
77+
<property name="text">
78+
<string>C&amp;onnect</string>
79+
</property>
80+
</widget>
81+
</item>
82+
<item row="0" column="0" colspan="5">
83+
<widget class="QComboBox" name="cmbConnections"/>
84+
</item>
85+
</layout>
86+
</widget>
87+
</item>
2388
<item row="1" column="0">
2489
<widget class="QTreeWidget" name="treeWidget">
2590
<property name="columnCount">
@@ -90,78 +155,14 @@
90155
</layout>
91156
</widget>
92157
</item>
93-
<item row="0" column="0">
94-
<widget class="QGroupBox" name="GroupBox1">
95-
<property name="title">
96-
<string>Server connections</string>
158+
<item row="3" column="0">
159+
<widget class="QCheckBox" name="mBboxCheckBox">
160+
<property name="text">
161+
<string>Only request features overlapping the current view extent</string>
97162
</property>
98-
<layout class="QGridLayout">
99-
<property name="margin">
100-
<number>9</number>
101-
</property>
102-
<property name="spacing">
103-
<number>6</number>
104-
</property>
105-
<item row="1" column="1">
106-
<widget class="QPushButton" name="btnNew">
107-
<property name="text">
108-
<string>&amp;New</string>
109-
</property>
110-
</widget>
111-
</item>
112-
<item row="1" column="3">
113-
<widget class="QPushButton" name="btnDelete">
114-
<property name="enabled">
115-
<bool>false</bool>
116-
</property>
117-
<property name="text">
118-
<string>Delete</string>
119-
</property>
120-
</widget>
121-
</item>
122-
<item row="1" column="2">
123-
<widget class="QPushButton" name="btnEdit">
124-
<property name="enabled">
125-
<bool>false</bool>
126-
</property>
127-
<property name="text">
128-
<string>Edit</string>
129-
</property>
130-
</widget>
131-
</item>
132-
<item row="1" column="4">
133-
<spacer>
134-
<property name="orientation">
135-
<enum>Qt::Horizontal</enum>
136-
</property>
137-
<property name="sizeType">
138-
<enum>QSizePolicy::Expanding</enum>
139-
</property>
140-
<property name="sizeHint" stdset="0">
141-
<size>
142-
<width>171</width>
143-
<height>30</height>
144-
</size>
145-
</property>
146-
</spacer>
147-
</item>
148-
<item row="1" column="0">
149-
<widget class="QPushButton" name="btnConnect">
150-
<property name="enabled">
151-
<bool>false</bool>
152-
</property>
153-
<property name="text">
154-
<string>C&amp;onnect</string>
155-
</property>
156-
</widget>
157-
</item>
158-
<item row="0" column="0" colspan="5">
159-
<widget class="QComboBox" name="cmbConnections"/>
160-
</item>
161-
</layout>
162163
</widget>
163164
</item>
164-
<item row="3" column="0">
165+
<item row="4" column="0">
165166
<widget class="QDialogButtonBox" name="buttonBox">
166167
<property name="orientation">
167168
<enum>Qt::Horizontal</enum>

0 commit comments

Comments
 (0)