5

I am developing a few scripts in Python for QGIS 1.8 to automate some geo-tasks and one of them would be to calculate the shortest distance from a hospital to each building in a town.

I would like to take advantage of the already existing Qgis plugin but, as it is a C++ plugin, I am not sure whether it is possible to access it from Python? Is there a binding or a trick for that?

If not, any further advice would be appreciated! As the base data is OpenStreetMap data stored in a PostGIS DB, I may also try with pgRouting. But the QGIS plugin would be my favourite choice if possible.

PS: this question is close to this one: Is there a way to access QGIS plugins in Python? but I believe it's still different enough to be worth a new thred.

3 Answers 3

3

gis-lab.info has a tutorial on using the network analysis library in QGIS using Python. It's not in English but Google Translate should be able to make it comprehensible. Good luck!

3
  • 1
    The Google translation doesn't really help, cause it's a very poor translation. But using your examples of code, I somehow manage to get it through. спасибо Commented May 2, 2013 at 6:19
  • Btw, that wasn't my blog post. I just linked it. Glad to know it helped though. Did it answer your question?
    – R.K.
    Commented May 2, 2013 at 6:58
  • I'm still working on it but I think it did solve it yes, thx Commented May 2, 2013 at 11:39
2

There's a tutorial for the Network analysis library in the QGIS documentation that covers building a routing graph as well as shortest path and service area calculations.

0
1

You can find multiple versions of routing scripts which use the QGIS network analysis library in my Github repository, e.g. https://github.com/anitagraser/QGIS-Processing-tools/blob/master/2.2/scripts/point_layer_to_route.py which converts an ordered set of points into a route.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.