Hi, I am new to Julia and need some help regarding construction of graph with shapefile.

I have shapefile that contains polylines and want to get the shortest path using Dijkstra’s algorithm.

The thing is, in order to use Dijkstra’s algorithm, I need a graph.

I am wondering if I can construct a graph with the shapefile that contains polylines?

Maybe I need to add vertices at the end of each polylines to fix the source and destination points.

Is there any suggestions or packages that I can refer to?

Thanks in advance.

Hi @Michelle_Ko!

I don’t think there is anything ready-baked for you, you might have to combine several packages:

Let me know if you need more help!

Hi @gdalle

Thanks for the reply but I already imported the shapefile into Julia and I figured out how to make a simple graph and add vertices and edges.

To explain more specifically, I have an electricity network in shapefile and I want to measure the shortest path from starting vertex to destination vertex. In order to do this, I thought I need to construct a graph using the polyline data since ‘dijkstra_shortest_paths’ let me measure the shortest path of a graph. For example,

*Polyline(Rect(-7.89573e6, 5.24276e6, -7.89571e6, 5.24284e6), Int32[0], Point[Point(-7.89573e6, 5.24276e6), Point(-7.89571e6, 5.24284e6)])*

is one electricity line that connects two points *Point[Point(-7.89573e6, 5.24276e6)* and *Point(-7.89571e6, 5.24284e6)])* and

*Polyline(Rect(-7.89573e6, 5.24276e6, -7.89579e6, 5.24299e6), Int32[0], Point[Point(-7.89573e6, 5.24276e6), Point(-7.89574e6, 5.24294e6), Point(-7.89579e6, 5.24299e6)])*

is another line that connects three points. And the points are in the form of coordinates in wgs84 (spatial reference).

Are there any ways that I can construct a graph that mimic the network of these electricity lines? Thank a lot in advance.

I think you have to manually extract the distance between vertex coordinates from the `Polyline`

objects, in order to turn it into weights. Does that answer your question?