<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-GB>Hi, <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>I am trying to play a bit with the Shooting
Star Query of pgRouting, since I need it to use it for one-way streets. <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>I am trying this query : <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>SELECT gid, the_geom <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:36.0pt'><span lang=EN-GB>FROM shootingstar_sp('streets',
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><span
lang=EN-GB>give_source('POINT(640905 225230)',1000,200), <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><span
lang=EN-GB>give_target('POINT(640982 225439)',1000,200), 2000,<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><span
lang=EN-GB>'length',true,true); <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>and also tried this query : <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>select rt.gid, rt.the_geom,
length(rt.the_geom), streets.gid <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:36.0pt'><span lang=EN-GB>from streets,<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><span
lang=EN-GB> (select gid, the_geom<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:72.0pt;text-indent:36.0pt'><span
lang=EN-GB> from shootingstar_sp(<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:108.0pt;text-indent:36.0pt'><span
lang=EN-GB> 'streets', <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:108.0pt;text-indent:36.0pt'><span
lang=EN-GB>give_source('POINT(640905 225230)',1000,200), <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:108.0pt;text-indent:36.0pt'><span
lang=EN-GB>give_target('POINT(640982 225439)',1000,200), 5000, 'length', true,
true<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:108.0pt;text-indent:36.0pt'><span
lang=EN-GB>) <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><span
lang=EN-GB>)as rt <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>For half of the results both edge_ids are
the same, however when I project the result on a shapefile then on QGis on my
map, the points where the route should start and end are FAR from the points I
selected. <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>The functions give_source and give_target
are functions I gave to transfrom the Point to the source colum and this is the
function : -- Function: give_source(text, integer, integer) <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>-- DROP FUNCTION give_source(text, integer,
integer); <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>CREATE OR REPLACE FUNCTION
give_source(text, integer, integer) <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>RETURNS integer AS <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>$BODY$ <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>DECLARE <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>pojnt ALIAS FOR $1; box ALIAS FOR $2; dist
ALIAS FOR $3; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>r_source INTEGER; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>BEGIN <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>SELECT source INTO r_source FROM streets s
WHERE <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>( the_geom && expand
(pointfromtext(pojnt),box) and distance (s.the_geom , pointfromtext(pojnt))
< dist ) <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>ORDER BY distance (s.the_geom ,
pointfromtext(pojnt)) ASC LIMIT 1; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>RETURN r_source; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>END; $BODY$ <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>LANGUAGE 'plpgsql' VOLATILE; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>ALTER FUNCTION give_source(text, integer,
integer) OWNER TO yancho; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>I know it should be something stupid that I
am doing, but really am out of ideas why it is not working. For sure the
routing is being done well, but the start / end points are wrong, so it should
be something from the give_source / give_target problem. BTW I used these two
functions for my astar_sp_delta testing and it worked perfectly : <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>SELECT gid, AsText?(the_geom) AS wkt <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>FROM astar_sp_delta( <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>'streets', (select
give_source('POINT(640905 225230)',1000,200), (select give_target('POINT(640982
225439)',1000,200), 3000 ); <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>"; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>As you can see on the paste here :
http://yancho.pastebin.com/f7f44a0c2 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>The first result row of astar_sp_delta is :
40617;"MULTILINESTRING((640920.707155369 225441.381903503,640919.710413482
225419.024734874,640904.400352 225231.230885577))" <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>.. Which is very near the POINT :
POINT(640905 225230), <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>However the first result row of
shootingstar_sp is : 791;"MULTILINESTRING((629357.137492173
222486.61416491,629357.137492172 222526.524103276))" followed by these two
: <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>47462;"MULTILINESTRING((629357.137492172
222526.524103276,629355.842055444 222559.004436553))"
44423;"MULTILINESTRING((629355.842055444 222559.004436553,629354.394306192
222605.962730528))" <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Which shows clearly how far it is from the
starting point : POINT(640905 225230) <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Also I tried this function : <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>SELECT * FROM shortest_path_shooting_star('
<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>SELECT gid as id, <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>source::integer, target::integer,
length::double precision as cost, rcost::double precision as reverse_cost, x1,
y1, x2, y2, rule, to_cost <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>FROM streets', <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>give_source('POINT(640905 225230)',1000,200),
give_target('POINT(640982 225439)',1000,200), <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>false,true); <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Highted and pasted here :
http://yancho.pastebin.com/d216a2408 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Which is giving me these 3 rows as my first
resultset : 13065;791;39.9099383660941 13066;47462;32.5061564333317
21733;44423;46.9806061157797 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Which have the same gid as the first 3
resultset given from shootingstar_sp .. so it is quite obvious I am giving the
functions the wrong starting location / ending .. any one can shed some light
on what I should fix please? <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Any ideas will be extremely appreciated and
keep up the good work :)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Thanks and regards <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB>Matthew<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-GB><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p>

<div class=MsoNormal align=center style='text-align:center'><span
style='font-size:12.0pt;font-family:"Times New Roman","serif"'>

<hr size=2 width="100%" align=center>

</span></div>

<p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'>I
am using the free version of SPAMfighter for private users.<br>
It has removed 18348 spam emails to date.<br>
Paying users do not have this message in their emails.<br>
Try <a href="http://www.spamfighter.com/len">SPAMfighter</a> for free now!<o:p></o:p></span></p>

</div>

</body>

</html>