[gdal-dev] RFC 48: Geographical networks support

Dmitry Baryshnikov bishop.dev at gmail.com
Thu Jul 9 13:04:30 PDT 2015


Hi everybody,

I have just finished the integration of GSoC2014 work into the 
geographical network support in GDAL.
The major changes from original code:
1) The base network class (GNMNetwork) is inherited form GDALDataset. So 
any GDAL utility, that works with GDALDataset can work with GNMNetwork.
2) Geographical network is a new type of data, additionally to the 
DCAP_RASTER and DCAP_VECTOR, added DCAP_GNM
3) I created the generic implementation of GDAL geographical network 
(GNMGenericNetwork). The generic network have some features: support of 
connection rules, support virtual vertices and edges, etc. The 
GNMNetwork API can be changed in future as common functions to generic 
network and some other networks (pgRouting, ArcGIS, OSRM, etc.) should 
be moved to the GNMNetwork class.
4) Two network drivers created for generic network: file based 
datasource and db based datasource. The file network driver tested on 
ESRI shapefile and db - on PostGIS. The another vector datasource which 
are not applicable with this drivers should have their own drivers.
5) The main method of created and configured GNMNetwork is GetPath, 
which return the temporary OGRLayer (similar to ExecuteSQL).
6) By default the GNM is switched off. The ./configure --with-gnm should 
be run to enable GNM. Mayne set it on by default?
7) The python binding is implemented and used in tests.

The RFC 48 in most cases is actual, except C API, which is not 
implemented.  Do we need it?
https://trac.osgeo.org/gdal/wiki/rfc48_geographical_networks_support

Links:
- diff with binary test data - 
https://drive.google.com/file/d/0BzlLlHyrgQHkNkktUmxYbWtjV3M/view?usp=sharing
- diff without binary test data - 
https://drive.google.com/file/d/0BzlLlHyrgQHkZ2lZN2wwTTVOQlE/view?usp=sharing
- binary test data - 
https://drive.google.com/file/d/0BzlLlHyrgQHkTTJjRFZNOEtfb3c/view?usp=sharing

Code reviewing and testing are welcome. Also the some decisions in 
implementation can be discussed.

The GDAL 2.0 provide ability to create datasets combine vector and 
raster data (drivers support both types).
In case of PostGIS we can have the driver combined vector, raster and 
networks (pgRouting). Maybe someone give an idea how it can be done.

-- 
Best regards,
     Dmitry



More information about the gdal-dev mailing list