I used osm2pgsql to convert osm data to postgresql. Now I have a table with edges and they have geometry like multilinestring. I am not sure what is meant be geometry of an edge. An edge is supposed to be a line between two points/nodes(start and end). How does the geometry thing come in? Can anyone please elaborate? And I want to know if routing functions like pgRouting actually use this geometry when calculating/displaying the shortest route?
1 Answer
An edge contains a source and target, which describes your route-able network. For Dijkstra algorithm this is sufficient. A-Star and Shooting Star algorithm have a heuristic component and make use of the geometry of source and target (x1,y1 and x2,y2). Source and target coordinates are pre-calculated for better performance.
The geometry (ie. multilinestring) is necessary for example to render the route, or to extract source and target points. It is not necessary for the shortest path algorithm.
-
That's what I am asking how the geometry is used while rendering the route. I have the geometry but how am I supposed to use it while displaying the route Commented May 30, 2012 at 20:10
-
1Well, you didn't ask this. But how you render the route depends on what software you use for rendering. pgRouting only returns you an SQL result set. You can take a look at the workshop and see how you can return the SQL result as GeoJSON and render it as vector layer in OpenLayers.– dkastlCommented May 30, 2012 at 20:17
-
-
Actually, I don't want to use openlayers. Is there any way to return the results in gpx format. I mean how can I convert the multilinestring so that it can be represented in gpx format Commented May 31, 2012 at 4:19
-
GPX doesn't know linestrings. And you can't directly use the SQL output but need to parse the geometry and create a GPX track segment for each linestring: topografix.com/gpx/1/1/#type_trksegType– dkastlCommented May 31, 2012 at 7:47