<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi ZhiQiang,<br>
<br>
you mean the oneway procedure (step 3) removes nodes+edges leading
to further normal subnetwork removal in step 4? This should not
happen. The subnetwork should be removed already in step 3.<br>
<br>
<div>> On step 2, although there is a gate <a
moz-do-not-send="true"
href="http://www.openstreetmap.org/node/703042503">http://www.openstreetmap.org/node/703042503</a>
<br>
> on <a moz-do-not-send="true"
href="http://www.openstreetmap.org/way/6374339">http://www.openstreetmap.org/way/6374339</a></div>
<div>> And gate block that edge.<br>
<br>
Because of this gate the island is a oneway subnetwork (!) and
should get entirely removed in step 2 IMO.<br>
<br>
> On step 3, a very important point are removed due to oneway<br>
<br>
</div>
If just one edge/node is removed there is something wrong. The
whole island should be removed.<br>
<br>
Kind Regards,<br>
Peter<br>
<br>
On 29.07.2015 09:50, John Zhao wrote:<br>
</div>
<blockquote
cite="mid:CA+EBg9QmxhTpSWmgu-vqLyHBc0qQT+TYXQYtMt=QHOwuFEuo=Q@mail.gmail.com"
type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>I know the difference between subnetworks and
oneway-subnetworks.</div>
<div>I am talking about the step 2 and step 4, not step 3.</div>
<div><br>
</div>
<div>step 2 and step 4 are both <span
style="font-size:12.8000001907349px">findSubnetwork() with
the same parameter.</span><br>
</div>
<div><span style="font-size:12.8000001907349px"> </span><span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minOnewayNetworkSize
= 20, </span><span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minNetworkSize
= 200</span><br>
</div>
<div><br>
</div>
<div>I think I figure out why this discrepancy occurs.</div>
<div>One case is a island in SF bay area. The island has 2
oneway roads connected to the main network. </div>
<div><a moz-do-not-send="true"
href="http://www.openstreetmap.org/way/53726398">http://www.openstreetmap.org/way/53726398</a><br>
</div>
<div><a moz-do-not-send="true"
href="http://www.openstreetmap.org/way/6374339">http://www.openstreetmap.org/way/6374339</a><br>
</div>
<div><br>
</div>
<div>On step 2, although there is a gate <a
moz-do-not-send="true"
href="http://www.openstreetmap.org/node/703042503">http://www.openstreetmap.org/node/703042503</a>
on <a moz-do-not-send="true"
href="http://www.openstreetmap.org/way/6374339">http://www.openstreetmap.org/way/6374339</a></div>
<div>And gate block that edge.</div>
<div>The other oneway is connected <a moz-do-not-send="true"
href="http://www.openstreetmap.org/way/53726398">http://www.openstreetmap.org/way/53726398</a>.</div>
<div>So, this island is connected to the whole network.</div>
<div><br>
</div>
<div>On step 3, a very important point are removed due to
oneway: <a moz-do-not-send="true"
href="http://www.openstreetmap.org/node/678314919">http://www.openstreetmap.org/node/678314919</a></div>
<div><br>
</div>
<div>Then on step 4, the island are not connected to the main
network.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="gmail_signature"><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Tue, Jul 28, 2015 at 11:12 PM, Peter
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<br>
<br>
hmmh, not sure if I understand what is unknown at your
side.<br>
<br>
Subnetworks are different things than
oneway-subnetworks. For example 4-5 is a oneway
subnetwork if connect with a oneway to the main graph
only:<br>
mainGraph->4-5<br>
<br>
And this cannot be detected in step 2.<br>
<br>
Please have a look at the unit tests to see more
examples for the different scenes<br>
<br>
Regards,<br>
Peter
<div>
<div class="h5"><br>
<br>
On 28.07.2015 20:05, John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div class="h5">
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>the result I posted is not the result of
oneway-subnetwork procedure.</div>
<div><br>
</div>
<div>The total procedures include:</div>
<div>1. remove zero-degree node</div>
<div>2. findSubnetwork</div>
<div>3. oneway-subnetwork procedure</div>
<div>4. findSubnetwork again on
graphhopper.cleanup()</div>
<div><br>
</div>
<div>My question is, why those islands are
recognized on step 4, but not on step 2?</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Tue, Jul 28, 2015 at
12:02 AM, Peter <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:graphhopper@gmx.de"
target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<br>
<br>
I think it is because both networks are
oneway subnetworks not found by the normal
subnetwork procedure (but by the
oneway-subnetwork procedure) and you
defined the oneway minimum size to 20<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 28.07.2015 03:13, John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>What I do is:</div>
<div>1. <span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minOnewayNetworkSize
= 20, </span><span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minNetworkSize
= 200</span></div>
<div><span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">2.
build san francisco bay area osm
data</span></div>
<div><span
style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">3.
I print out the subnetworks
result of the second call.</span></div>
<div>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt"><span style="color:#000080;font-weight:bold">int </span>remainingSubnetworks = preparation.findSubnetworks().size();</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">4. I found the subnetwork has some smaller than 200, like:</pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">subnetwork start from: 37.32611992939085,-121.9961998312816 size: 24</span><span style="font-size:12pt">
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">subnetwork start from: 37.78373608999855,-122.25065187925067 size: 34
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">5. I can't understand why the subnetworks with 24 nodes and 34 nodes are not removed by </span></font><span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">preparation.doWork();</span></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">It call the same method:</span></font></pre>
<pre><pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">Map map = <span style="color:#000080;font-weight:bold">this</span>.findSubnetworks();</pre></pre>
<pre><span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">
</span></pre>
</div>
</div>
<div class="gmail_extra"><br
clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Mon, Jul
27, 2015 at 12:54 PM, Peter <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:graphhopper@gmx.de"
target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF"
text="#000000">
<div>Hi John,<br>
<br>
sorry, I do not understand
your problem or question
here. Would you describe it
again step by step for me :)
?<br>
<br>
Kind Regards,<br>
Peter
<div>
<div><br>
<br>
On 27.07.2015 21:45,
John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>Thanks.</div>
<div>Actually I only
have 1 flagEncoder
in the <span
style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt;background-color:rgb(228,228,255)">EncodingManager.</span></div>
<div>The call is exact
same, <span
style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt;white-space:pre-wrap">preparation.findSubnetworks()</span><br>
</div>
<div>
<pre style="white-space:pre-wrap;color:rgb(0,0,0);font-family:Menlo;font-size:12pt">preparation.findSubnetworks() using edgeFilter which is also from singleEncoder.</pre>
</div>
</div>
<div class="gmail_extra"><br
clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div
class="gmail_quote">On
Sun, Jul 26, 2015 at
7:56 AM, Peter <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0 0
0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
bgcolor="#FFFFFF"
text="#000000">
<div>Hi John,<br>
<br>
it should not
be related to
calling these
method twice.
It is just one
time where you
calculate the
subnetworks
independent of
any
FlagEncoder or
direction via
findSubnetworks
and the second
pass is
FlagEncoder-
and
access-dependent
via
removeDeadEndUnvisitedNetworks.<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 24.07.2015
21:16, John
Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote
type="cite">
<div dir="ltr">Hi
Peter,
<div><br>
</div>
<div>I am
still
confused.</div>
<div>at first
we call </div>
<div><span
style="color:rgb(0,0,0);font-family:Menlo;font-size:16px">map
=
findSubnetworks();</span><br>
</div>
<div><span
style="color:rgb(0,0,0);font-family:Menlo;font-size:16px"><br>
</span></div>
<div><span
style="color:rgb(0,0,0);font-family:Menlo;font-size:16px">after
the cleanup,
we call the
same method in
Graphhopper.</span></div>
<div>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt"><span style="color:#000080;font-weight:bold">int </span>remainingSubnetworks = preparation.findSubnetworks().size();</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">Why the subnetwork was recognized the latter time, but not the first time?</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">we remove some edges make it not connected?</pre>
</div>
</div>
<div
class="gmail_extra"><br
clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div
class="gmail_quote">On
Thu, Jul 23,
2015 at 2:22
PM, Peter <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<br>
<div
bgcolor="#FFFFFF"
text="#000000">
Hi ZhiQiang,<br>
<br>
yes, according
to the wiki
this is
wrongly
mapped:<br>
<i> Avoid
tagging
highway
intersections
as that does
not make clear
which way has
the
impediment. </i><br>
<br>
<a
moz-do-not-send="true"
href="http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate"
target="_blank">http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate</a><span><font
color="#888888"><br>
<br>
Peter</font></span>
<div>
<div><br>
<br>
<div>On
23.07.2015
23:16, John
Zhao wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">Hi
Peter,
<div><br>
</div>
<div>Maybe the
following one
related with <a
moz-do-not-send="true"
href="https://github.com/graphhopper/graphhopper/issues/388#issuecomment-88066385"
target="_blank">https://github.com/graphhopper/graphhopper/issues/388#issuecomment-88066385</a> </div>
<div><br>
</div>
<div>
<div
style="font-size:12.8000001907349px">I
have a look
at 37.32611992939085,-121.9961998312816.</div>
<div
style="font-size:12.8000001907349px">It
seesm related
with
barrier=gate
at
intersection.</div>
<div
style="font-size:12.8000001907349px"><a
moz-do-not-send="true"
href="http://www.openstreetmap.org/node/1126492194"
target="_blank">http://www.openstreetmap.org/node/1126492194</a></div>
</div>
</div>
<div
class="gmail_extra"><br
clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div
class="gmail_quote">On
Thu, Jul 23,
2015 at 2:11
PM, Peter <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<br>
<div
bgcolor="#FFFFFF"
text="#000000">
There are two
types of
subnetworks
and the
smaller ones
seems to be
'one-way
subnetworks'
which means
they are eg.
only reachable
as destination
or start. But
if you would
start from a
destination-only
subnetwork
you'll get
'not found'
for all points
outside of
this network.<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
<div>On
23.07.2015
23:03, John
Zhao wrote:<br>
</div>
</div>
</div>
<blockquote
type="cite">
<div>
<div>
<div dir="ltr">Interesting,
<div>when I
increase <span
style="font-size:12.8000001907349px">minOnewayNetworkSize from 20 to 50,
the following
two
disappeared.</span></div>
<div>
<div
style="font-size:12.8000001907349px">subnetwork
start from:
37.32611992939085,-121.9961998312816
size: 24</div>
<div
style="font-size:12.8000001907349px"><span
style="font-size:12.8000001907349px">subnetwork start from:
37.78373608999855,-122.</span><span
style="font-size:12.8000001907349px">25065187925067 size: 34</span></div>
</div>
</div>
<div
class="gmail_extra"><br
clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div
class="gmail_quote">On
Thu, Jul 23,
2015 at 1:55
PM, John Zhao
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:johnthu@gmail.com" target="_blank">johnthu@gmail.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I tried
car flag
encoder with
following
parameter on
San Francisco
bay area data
from mapzen.</div>
<div><a
moz-do-not-send="true"
href="https://s3.amazonaws.com/metro-extracts.mapzen.com/san-francisco-bay_california.osm.pbf"
target="_blank">https://s3.amazonaws.com/metro-extracts.mapzen.com/san-francisco-bay_california.osm.pbf</a></div>
<div><br>
</div>
<div>
<div>minNetworkSize=200</div>
<div>minOnewayNetworkSize=20</div>
<div><br>
</div>
<div>I printed
all the
remaining
subnetworks.</div>
<div>
<div>edges:
591932, nodes
437420, there
were 3496
subnetworks.
removed them
=> 13121
less nodes.
Remaining
subnetworks:5</div>
<div>The
remaining
subnetworks
are:</div>
<div>subnetwork
start from:
37.32611992939085,-121.9961998312816
size: 24</div>
<div>subnetwork
start from:
37.56018439442332,-122.30257814308803
size: 436637</div>
<div>subnetwork
start from:
37.78373608999855,-122.25065187925067
size: 34</div>
<div>subnetwork
start from:
38.180185962770565,-121.70631393878864
size: 301</div>
<div>subnetwork
start from:
37.85717050411933,-122.07633641532816
size: 424</div>
</div>
<div><br>
</div>
<div>I don't
understand why
there is still
subnetwork
less than 200
nodes.</div>
<div><br>
</div>
<div>I have a
look
at 37.32611992939085,-121.9961998312816.</div>
<div>It seesm
related with
barrier=gate
at
intersection.</div>
<div><a
moz-do-not-send="true"
href="http://www.openstreetmap.org/node/1126492194" target="_blank">http://www.openstreetmap.org/node/1126492194</a><br>
</div>
<div><br>
</div>
<div>
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
GraphHopper mailing list<br>
<a moz-do-not-send="true"
href="mailto:GraphHopper@openstreetmap.org"
target="_blank">GraphHopper@openstreetmap.org</a><br>
<a moz-do-not-send="true"
href="https://lists.openstreetmap.org/listinfo/graphhopper"
rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>