Skip to content

Commit 3dcf03c

Browse files
authored
Merge pull request #3773 from alexbruy/network-analysis
Network analysis
2 parents 8c8be00 + 82082b4 commit 3dcf03c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+797
-899
lines changed

cmake/QsciAPI.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ENDIF(EXISTS "${CMAKE_BINARY_DIR}/python/qgis.gui.api")
2222
# add qgis.core.NULL attribute defined in <src>/python/__init__.py for QPyNullVariant
2323
FILE(APPEND "${QGIS_PYTHON_API_FILE}" "qgis.core.NULL?7\n")
2424

25-
FOREACH(apiFile qgis.core.api qgis.gui.api qgis.analysis.api qgis.networkanalysis.api qgis.server.api)
25+
FOREACH(apiFile qgis.core.api qgis.gui.api qgis.analysis.api qgis.server.api)
2626
SET(api "${CMAKE_BINARY_DIR}/python/${apiFile}")
2727
IF(EXISTS "${api}")
2828
FILE(READ "${api}" FILE_CONTENT)

debian/control

-14
Original file line numberDiff line numberDiff line change
@@ -129,18 +129,6 @@ Description: QGIS - shared analysis library
129129
.
130130
This package contains the shared analysis library.
131131

132-
Package: libqgis-networkanalysis2.99.0
133-
Architecture: any
134-
Section: libs
135-
Depends:
136-
${shlibs:Depends},
137-
${misc:Depends}
138-
Description: QGIS - shared network analysis library
139-
QGIS is a Geographic Information System (GIS) which manages, analyzes and
140-
display databases of geographic information.
141-
.
142-
This package contains the shared network analysis library.
143-
144132
Package: libqgisgrass7-2.99.0
145133
Architecture: any
146134
Section: libs
@@ -204,7 +192,6 @@ Depends:
204192
libqgis-core2.99.0 (= ${binary:Version}),
205193
libqgis-gui2.99.0 (= ${binary:Version}),
206194
libqgis-analysis2.99.0 (= ${binary:Version}),
207-
libqgis-networkanalysis2.99.0 (= ${binary:Version}),
208195
libqgisgrass7-2.99.0 (= ${binary:Version}),
209196
libqgispython2.99.0 (= ${binary:Version}),
210197
libsqlite3-dev,
@@ -241,7 +228,6 @@ Depends:
241228
libqgis-core2.99.0 (= ${binary:Version}),
242229
libqgis-gui2.99.0 (= ${binary:Version}),
243230
libqgis-analysis2.99.0 (= ${binary:Version}),
244-
libqgis-networkanalysis2.99.0 (= ${binary:Version}),
245231
libqgisgrass7-2.99.0 (= ${binary:Version}),
246232
libqgispython2.99.0 (= ${binary:Version}),
247233
${misc:Depends}

debian/control.in

-14
Original file line numberDiff line numberDiff line change
@@ -132,18 +132,6 @@ Description: QGIS - shared analysis library
132132
.
133133
This package contains the shared analysis library.
134134

135-
Package: libqgis-networkanalysis{QGIS_ABI}
136-
Architecture: any
137-
Section: libs
138-
Depends:
139-
${shlibs:Depends},
140-
${misc:Depends}
141-
Description: QGIS - shared network analysis library
142-
QGIS is a Geographic Information System (GIS) which manages, analyzes and
143-
display databases of geographic information.
144-
.
145-
This package contains the shared network analysis library.
146-
147135
Package: libqgisgrass{GRASSVER}-{QGIS_ABI}
148136
Architecture: any
149137
Section: libs
@@ -207,7 +195,6 @@ Depends:
207195
libqgis-core{QGIS_ABI} (= ${binary:Version}),
208196
libqgis-gui{QGIS_ABI} (= ${binary:Version}),
209197
libqgis-analysis{QGIS_ABI} (= ${binary:Version}),
210-
libqgis-networkanalysis{QGIS_ABI} (= ${binary:Version}),
211198
libqgisgrass{GRASSVER}-{QGIS_ABI} (= ${binary:Version}),
212199
libqgispython{QGIS_ABI} (= ${binary:Version}),
213200
libsqlite3-dev,
@@ -244,7 +231,6 @@ Depends:
244231
libqgis-core{QGIS_ABI} (= ${binary:Version}),
245232
libqgis-gui{QGIS_ABI} (= ${binary:Version}),
246233
libqgis-analysis{QGIS_ABI} (= ${binary:Version}),
247-
libqgis-networkanalysis{QGIS_ABI} (= ${binary:Version}),
248234
libqgisgrass{GRASSVER}-{QGIS_ABI} (= ${binary:Version}),
249235
libqgispython{QGIS_ABI} (= ${binary:Version}),
250236
${misc:Depends}

debian/libqgis-dev.install.in

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ usr/lib/libqgis_app.so
33
usr/lib/libqgis_core.so
44
usr/lib/libqgis_gui.so
55
usr/lib/libqgis_analysis.so
6-
usr/lib/libqgis_networkanalysis.so
76
#server#usr/lib/libqgis_server.so
87
usr/lib/libqgisgrass{GRASSVER}.so
98
usr/lib/libqgispython.so

debian/libqgis-networkanalysis{QGIS_ABI}.install

-1
This file was deleted.

debian/libqgis-networkanalysis{QGIS_ABI}.lintian-overrides

-1
This file was deleted.

debian/python-qgis.install.in

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ usr/lib/python*/*-packages/qgis/*.so
33
usr/lib/python*/*-packages/qgis/core/*
44
usr/lib/python*/*-packages/qgis/gui/*
55
usr/lib/python*/*-packages/qgis/analysis/*
6-
usr/lib/python*/*-packages/qgis/networkanalysis/*
76
usr/lib/python*/*-packages/qgis/PyQt/*
87
usr/lib/python*/*-packages/qgis/testing/*
98
usr/lib/python*/*-packages/pyspatialite/*

doc/api_break.dox

+16-1
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ Renamed Classes {#qgis_api_break_3_0_renamed_classes}
180180
<tr><td>QgsVectorRandomColorRampV2Dialog<td>QgsLimitedRandomColorRampDialog
181181
<tr><td>QgsVectorRandomColorRampV2DialogBase<td>QgsLimitedRandomColorRampDialogBase
182182
<tr><th>QgsSymbolV2<th>QgsSymbol
183+
<tr><th>QgsArcProperter<th>QgsStrategy
184+
<tr><th>QgsDistanceArcProperter<th>QgsDistanceStrategy
185+
<tr><th>QgsGraphArc<th>QgsGraphEdge
183186
</table>
184187

185188
<table>
@@ -205,6 +208,17 @@ Renamed Classes {#qgis_api_break_3_0_renamed_classes}
205208
<tr><td>QgsVectorLayerEditUtils<td>deleteVertexV2<td>deleteVertex
206209
<tr><td>QgsComposerSymbolItem<td>symbolV2<td>symbol
207210
<tr><td>QgsServerInterface<td>capabiblitiesCache<td>capabilitiesCache
211+
<tr><td>QgsGraphEdge<td>property<td>cost
212+
<tr><td>QgsGraphEdge<td>properties<td>strategies
213+
<tr><td>QgsGraphVertex<td>outArc<td>outEdges
214+
<tr><td>QgsGraphVertex<td>inArc<td>inEdges
215+
<tr><td>QgsGraph<td>addArc<td>addEdges
216+
<tr><td>QgsGraph<td>arcCount<td>edgeCount
217+
<tr><td>QgsGraph<td>arc<td>edge
218+
<tr><td>QgsGraphBuilder<td>addArc<td>addEdge
219+
<tr><td>QgsGraphBuilderInterface<td>addArc<td>addEdge
220+
<tr><td>QgsGraphDirectory<td>addProperter<td>addStrategy
221+
<tr><td>QgsStrategy<td>addProperter<td>addStrategy
208222
</table>
209223

210224

@@ -251,6 +265,7 @@ General changes {#qgis_api_break_3_0_global}
251265
- All importXML() methods have been renamed to importXml()
252266
- All methods taking or returning QGis::WkbType have been changed to use QgsWkbTypes::Type
253267
- All methods taking or returning QGis::GeometryType have been changed to use QgsWkbTypes::GeometryType
268+
- Network analysis library has been merged into analysis library
254269

255270

256271
Data Providers {#qgis_api_break_3_0_DataProviders}
@@ -768,7 +783,7 @@ QgsEditFormConfig {#qgis_api_break_3_0_QgsEditFormConfig}
768783
- widgetType() and widgetConfig() now reflect only the user configured values.
769784
QgsEditorWidgetRegistry::instance()->findBest() must be used instead.
770785
- widgetType(), widgetConfig(), setWidgetType(), setWidgetConfig() and removeWidgetConfig() now only take a string as first parameter. Access by index has been removed.
771-
- expression(), setExpression(), expressionDescription() and setExpressionDescription()
786+
- expression(), setExpression(), expressionDescription() and setExpressionDescription()
772787
have been removed. Use QgsVectorLayer.setConstraintExpression()/constraintExpression(),
773788
or QgsField.constraintExpression()/QgsField.constraintDescription() instead.
774789
- notNull() and setNotNull() have been removed. Use QgsVectorLayer.setFieldConstraint()/fieldConstraints(), or QgsField.constraints() instead.

doc/modules.dox

+3-7
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@ The GUI library is build on top of the CORE library and adds reusable GUI widget
1212

1313
/** @defgroup analysis analysis library
1414

15-
The ANALYSIS library is built on top of CORE library and provides
15+
The ANALYSIS library is built on top of CORE library and provides
1616
high level tools for carrying out spatial analysis on vector and raster data.
17-
*/
18-
19-
/** @defgroup networkanalysis network analysis library
20-
21-
The NETWORK_ANALYSIS library provides high level tools for building network
22-
topologies and analysing them.
17+
It also contains high level tools for building network topologies and analysing
18+
them.
2319
*/
2420

2521
/** @defgroup server server library

ms-windows/osgeo4w/package.cmd

-1
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,6 @@ tar -C %OSGEO4W_ROOT% -cjf %ARCH%/release/qgis/%PACKAGENAME%-common/%PACKAGENAME
299299
--exclude "*.pyc" ^
300300
"apps/%PACKAGENAME%/bin/qgispython.dll" ^
301301
"apps/%PACKAGENAME%/bin/qgis_analysis.dll" ^
302-
"apps/%PACKAGENAME%/bin/qgis_networkanalysis.dll" ^
303302
"apps/%PACKAGENAME%/bin/qgis_core.dll" ^
304303
"apps/%PACKAGENAME%/bin/qgis_gui.dll" ^
305304
"apps/%PACKAGENAME%/doc/" ^

python/CMakeLists.txt

+7-13
Original file line numberDiff line numberDiff line change
@@ -138,20 +138,20 @@ IF(NOT QT_MOBILITY_LOCATION_FOUND)
138138
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} MOBILITY_LOCATION)
139139
ENDIF(NOT QT_MOBILITY_LOCATION_FOUND)
140140

141-
IF(PYQT4_VERSION_NUM LESS 263680) # 0x040600
141+
IF(PYQT4_VERSION_NUM LESS 263680) # 0x040600
142142
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} PROXY_FACTORY)
143143
ENDIF(PYQT4_VERSION_NUM LESS 263680)
144144

145145
#
146-
IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
146+
IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
147147
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)
148148
ENDIF(NOT PYQT4_VERSION_NUM LESS 264194)
149149

150150
IF(PYQT4_VERSION_NUM LESS 264196) # 0x040804
151151
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QLISTCONSTPTR_CONVERSION)
152152
ENDIF(PYQT4_VERSION_NUM LESS 264196)
153153

154-
IF(NOT PYQT4_VERSION_NUM LESS 264453) # 0x040905
154+
IF(NOT PYQT4_VERSION_NUM LESS 264453) # 0x040905
155155
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QVECTORINT_CONVERSION)
156156
ENDIF(NOT PYQT4_VERSION_NUM LESS 264453)
157157

@@ -200,7 +200,7 @@ ENDIF(UNIX AND NOT SIP_VERSION_NUM LESS 265984)
200200
GENERATE_SIP_PYTHON_MODULE_CODE(qgis._gui gui/gui.sip cpp_files)
201201
BUILD_SIP_PYTHON_MODULE(qgis._gui gui/gui.sip ${cpp_files} "" qgis_core qgis_gui)
202202

203-
SET(PY_MODULES core gui analysis networkanalysis)
203+
SET(PY_MODULES core gui analysis)
204204

205205
# server module
206206
IF (WITH_SERVER AND WITH_SERVER_PLUGINS)
@@ -228,8 +228,8 @@ INCLUDE_DIRECTORIES(
228228
../src/analysis/interpolation
229229
../src/analysis/openstreetmap
230230
${CMAKE_BINARY_DIR}/src/analysis/vector
231-
${CMAKE_BINARY_DIR}/src/analysis/network
232231
${CMAKE_BINARY_DIR}/src/analysis/raster
232+
${CMAKE_BINARY_DIR}/src/analysis/network
233233
${CMAKE_BINARY_DIR}/src/analysis/interpolation
234234
${CMAKE_BINARY_DIR}/src/analysis/openstreetmap
235235
)
@@ -239,6 +239,7 @@ FILE(GLOB sip_files_analysis
239239
analysis/*.sip
240240
analysis/raster/*.sip
241241
analysis/vector/*.sip
242+
analysis/network/*.sip
242243
analysis/interpolation/*.sip
243244
analysis/openstreetmap/*.sip
244245
)
@@ -247,21 +248,14 @@ SET(SIP_EXTRA_OPTIONS ${PYQT_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.an
247248
GENERATE_SIP_PYTHON_MODULE_CODE(qgis._analysis analysis/analysis.sip cpp_files)
248249
BUILD_SIP_PYTHON_MODULE(qgis._analysis analysis/analysis.sip ${cpp_files} "" qgis_core qgis_analysis)
249250

250-
# network-analysis module
251-
FILE(GLOB_RECURSE sip_files_network_analysis analysis/network/*.sip)
252-
SET(SIP_EXTRA_FILES_DEPEND ${sip_files_core} ${sip_files_network_analysis})
253-
SET(SIP_EXTRA_OPTIONS ${PYQT_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.networkanalysis.api)
254-
GENERATE_SIP_PYTHON_MODULE_CODE(qgis._networkanalysis analysis/network/networkanalysis.sip cpp_files)
255-
BUILD_SIP_PYTHON_MODULE(qgis._networkanalysis networkanalysis/networkanalysis.sip ${cpp_files} "" qgis_core qgis_networkanalysis)
256-
257251
SET(QGIS_PYTHON_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis)
258252

259253
IF(WITH_QSCIAPI)
260254
# wait until after python module builds for api files to be available
261255
SET(QGIS_PYTHON_API_FILE "${CMAKE_BINARY_DIR}/python/qsci_apis/PyQGIS.api")
262256

263257
ADD_CUSTOM_TARGET(qsci-api ALL
264-
DEPENDS python_module_qgis__gui python_module_qgis__core python_module_qgis__analysis python_module_qgis__networkanalysis)
258+
DEPENDS python_module_qgis__gui python_module_qgis__core python_module_qgis__analysis)
265259

266260
# run update/concatenate command
267261
ADD_CUSTOM_COMMAND(TARGET qsci-api

python/analysis/analysis.sip

+10
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,13 @@
5252
%Include raster/qgsruggednessfilter.sip
5353
%Include raster/qgsslopefilter.sip
5454
%Include raster/qgstotalcurvaturefilter.sip
55+
56+
%Include network/qgsgraph.sip
57+
%Include network/qgsnetworkstrategy.sip
58+
%Include network/qgsnetworkspeedstrategy.sip
59+
%Include network/qgsnetworkdistancestrategy.sip
60+
%Include network/qgsgraphbuilderinterface.sip
61+
%Include network/qgsgraphbuilder.sip
62+
%Include network/qgsgraphdirector.sip
63+
%Include network/qgsvectorlayerdirector.sip
64+
%Include network/qgsgraphanalyzer.sip

python/analysis/network/networkanalysis.sip

-15
This file was deleted.

python/analysis/network/qgsarcproperter.sip

-45
This file was deleted.

python/analysis/network/qgsdistancearcproperter.sip

-10
This file was deleted.

0 commit comments

Comments
 (0)