<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; Hello all!<br>
&gt;<br>
&gt; I am creating drive time radii (or isochrones) by allowing the user to<br>
&gt; click on a map surface and entering a number of minutes.<br>
&gt;<br>
&gt; Using the driving_distance function in pgrouting I am able to get very<br>
&gt; close to a good solution, but it is somewhat limited in that you can<br>
&gt; only route from node to node (vertex to vertex). In order to improve the<br>
&gt; accuracy, I thought I would try to insert a new node/vertex as close as<br>
&gt; possible to the coordinates that my user clicked. That way my start node<br>
&gt; would always be as accurate as it can be.<br>
&gt;<br>
&gt; Has anyone done this? I&#39;m not sure I understand the assign_vertex_id<br>
&gt; function and how the graph is constructed well enough to come up with a<br>
&gt; solution myself.<br>
&gt;<br>
&gt; Any help or direction is appreciated!<br>
<br>
What you would want to do in this case is:<br>
<br>
1. take you position and find the nearest edge to that location (EID,<br>
ESOURCE, ETARGET, ECOST, EREVERSE_COST)<br>
2. compute the ratio of distance along that edge (RATIO)<br>
3. then add a create a temporary node at that location (NEWNODE)<br>
4. then add edges from the temp node to each of the end points to that<br>
edge, paying attention to oneway-ness of that edge and assigning costs<br>
as a ratio of the original cost.<br>
<br>
So select edges for your query might look like and you would pass<br>
NEWNODE as the starting node.<br>
<br>
select gid, source, target, cost, reverse_cost from roads<br>
union all<br>
select maxgid+1, ESOURCE, NEWNODE, ECOST*RATIO, EREVERSE_COST*(1-RATIO)<br>
union all<br>
select maxgid+2, NEWNODE, ETARGET, ECOST*(1-RATIO), EREVERSE_COST*RATIO<br>
<br>
-Steve<br>
<br></blockquote><div><br></div><div>I get lost on your 3rd step: &quot;Create a temporary node&quot;</div><div>How do you insert just a node? The &quot;roads&quot; table is made up of edges, so wouldn&#39;t I need to insert an edge?</div>
</div>