<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 John,<br>
      <br>
      good question :)<br>
      <br>
      Maybe that is the reason that in rare cases pillar nodes are
      incorrectly determined as tower nodes. One could introduce a new
      PILLAR_NODE2=0 variable and try if everything is still working.
      But before I would pick a big area and count the percentage of
      those incorrectly determined tower nodes if this is valuable at
      all.<br>
      <br>
      Regards,<br>
      Peter<br>
      <br>
      <br>
      On 03.06.2015 22:16, John Zhao wrote:<br>
    </div>
    <blockquote
cite="mid:CA+EBg9TX-GX5Jcz4Mtpk_G7t3jX8fuA5HSbBGN65dwEA9fcEuA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Peter,
        <div><br>
        </div>
        <div>That sounds reasonable. But I am still confused.</div>
        <div>I think the logic is under the below logic. </div>
        <div>Based on the logic and commets, a node is "mark node as
          tower node as it occured at least twice times", not "at least
          3 times".</div>
        <div>
          <p class="">    <span class="">void</span> prepareHighwayNode(
            <span class="">long</span> <span class="">osmId</span> )</p>
          <p class="">    {</p>
          <p class="">        <span class="">int</span> <span class="">tmpIndex</span>
            = getNodeMap().get(<span class="">osmId</span>);</p>
          <p class="">        <span class="">if</span> (<span class="">tmpIndex</span>
            == <span class="">EMPTY</span>)</p>
          <p class="">        {</p>
          <p class=""><span class="">            </span>// osmId is
            used exactly once</p>
          <p class="">            getNodeMap().put(<span class="">osmId</span>,
            <span class="">PILLAR_NODE</span>);</p>
          <p class="">        } <span class="">else</span> <span
              class="">if</span> (<span class="">tmpIndex</span> > <span
              class="">EMPTY</span>)</p>
          <p class="">        {</p>
          <p class=""><span class="">            </span>// mark node as
            tower node as it occured at least twice times</p>
          <p class="">            getNodeMap().put(<span class="">osmId</span>,
            <span class="">TOWER_NODE</span>);</p>
          <p class="">        } <span class="">else</span></p>
          <p class="">        {</p>
          <p class=""><span class="">            </span>// tmpIndex is
            already negative (already tower node)</p>
          <p class="">        }</p>
          <p class="">    }</p>
        </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 Wed, Jun 3, 2015 at 12:15 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,<br>
                <br>
                the details are a bit trickier as we do everything very
                memory efficient.<br>
                <br>
                And if a osm node occurs twice it is a pillar node,
                otherwise it is a tower node.<br>
                <br>
                Kind Regards,<br>
                Peter
                <div>
                  <div class="h5"><br>
                    <br>
                    On 03.06.2015 21:05, John Zhao wrote:<br>
                  </div>
                </div>
              </div>
              <div>
                <div class="h5">
                  <blockquote type="cite">
                    <div dir="ltr">I go through the logic:
                      <div>It go through all osmways, and count the
                        occurrence of nodeID.</div>
                      <div>if nodeID appear only once, it's a pillar
                        node.</div>
                      <div>otherwise, it's a tower node.</div>
                      <div><br>
                      </div>
                      <div>That's it. Do I miss something?</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 Wed, Jun 3, 2015 at
                        11:55 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,<br>
                              <br>
                              there is no separate merging logic
                              (although there was in 0.1 or something).
                              In OSMReader it is decided when an edge is
                              created and e.g. OSM ways are splitted if
                              there are barriers or junctions on the
                              way. So it decides whether an osm nodes
                              will be a tower node or just a pillar node<br>
                              <br>
                              Regards,<br>
                              Peter
                              <div>
                                <div><br>
                                  <br>
                                  On 03.06.2015 20:35, John Zhao wrote:<br>
                                </div>
                              </div>
                            </div>
                            <div>
                              <div>
                                <blockquote type="cite">
                                  <div dir="ltr">Hi Peter,
                                    <div><br>
                                    </div>
                                    <div>Could you tell me where is the
                                      merging logic?</div>
                                    <div>That's interesting.</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 Wed, Jun
                                      3, 2015 at 12:09 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 Jan,<br>
                                            <br>
                                            we do this kind of 'merging'
                                            logic already in the import
                                            step when deciding what
                                            should be handled as tower
                                            node and what is a pillar
                                            node. Otherwise you'll need
                                            as twice as many RAM when
                                            copying from one graph to
                                            the other.<span><br>
                                              <br>
                                              <div><br>
                                              </div>
                                              <div>> Have you made a
                                                experiment to count the
                                                number of 2 degree nodes
                                                with the equal flags and
                                                name in OSM?</div>
                                            </span>
                                            <div><span>> And then we
                                                can know how many edges
                                                we can save.<br>
                                                <br>
                                              </span> Yes, this should
                                              be done before
                                              implementing it :)<br>
                                              <br>
                                              And as the merging logic
                                              is currently not 100%
                                              optimal, there could be
                                              some minor savings even
                                              when recognizing the
                                              different street names,
                                              but I'm unsure if it is
                                              worth the effort.<br>
                                              <br>
                                              Issues like #234 or #111
                                              will probably make more
                                              difference.<br>
                                            </div>
                                            <br>
                                            Kind Regards,<br>
                                            Peter
                                            <div>
                                              <div><br>
                                                <br>
                                                On 02.06.2015 22:35,
                                                John Zhao wrote:<br>
                                              </div>
                                            </div>
                                          </div>
                                          <div>
                                            <div>
                                              <blockquote type="cite">
                                                <div dir="ltr">Hi,
                                                  <div><br>
                                                  </div>
                                                  <div>AFAIK, there is
                                                    no this kind of
                                                    merging logic here.</div>
                                                  <div>Wait the answer
                                                    from Peter.</div>
                                                  <div>Probably you need
                                                    to implement it by
                                                    your own.</div>
                                                  <div>And it's not
                                                    easy. </div>
                                                  <div>Maybe can be done
                                                    before import?</div>
                                                  <div>What you want, is
                                                    actually convert a
                                                    tower node to a
                                                    pillar node.</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, Jun 2, 2015 at
                                                    1:27 PM, Jan Torben
                                                    Heuer <span
                                                      dir="ltr"><<a
                                                        moz-do-not-send="true"
href="mailto:jan@komoot.de" target="_blank">jan@komoot.de</a>></span>
                                                    wrote:<br>
                                                    <blockquote
                                                      class="gmail_quote"
                                                      style="margin:0 0
                                                      0
                                                      .8ex;border-left:1px
                                                      #ccc
                                                      solid;padding-left:1ex">
                                                      <div
                                                        style="word-wrap:break-word">Hi ZhiQiang


                                                        ZHAO,
                                                        <div><br>
                                                        </div>
                                                        <div>Thanks for
                                                          your quick
                                                          answer.</div>
                                                        <div>I have a
                                                          custom
                                                          FlagEncoder
                                                          that imports
                                                          only very few
                                                          ways and I
                                                          don’t need the
                                                          names. I
                                                          guess, I have
                                                          mostly nodes
                                                          with a degree
                                                          of two.</div>
                                                        <span><font
                                                          color="#888888">
                                                          <div><br>
                                                          </div>
                                                          <div>Jan</div>
                                                          </font></span>
                                                        <div>
                                                          <div>
                                                          <div><br>
                                                          <div>
                                                          <div>Am
                                                          02.06.2015 um
                                                          21:53 schrieb
                                                          John Zhao <<a
moz-do-not-send="true" href="mailto:johnthu@gmail.com" target="_blank">johnthu@gmail.com</a>>:</div>
                                                          <br>
                                                          <blockquote
                                                          type="cite">
                                                          <div dir="ltr">Hi,

                                                          <div><br>
                                                          </div>
                                                          <div>Have you
                                                          made a
                                                          experiment to
                                                          count the
                                                          number of 2
                                                          degree nodes
                                                          with the equal
                                                          flags and name
                                                          in OSM?</div>
                                                          <div>And then
                                                          we can know
                                                          how many edges
                                                          we can save.</div>
                                                          <div><br>
                                                          </div>
                                                          <div>I doubt
                                                          this should be
                                                          not too much
                                                          for OSM.</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, Jun 2,
                                                          2015 at 11:59
                                                          AM, Jan Torben
                                                          Heuer <span
                                                          dir="ltr"><<a
moz-do-not-send="true" href="mailto:jan@komoot.de" target="_blank">jan@komoot.de</a>></span>
                                                          wrote:<br>
                                                          <blockquote
                                                          class="gmail_quote"
                                                          style="margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">Hi,<br>
                                                          <br>
                                                          Can
                                                          Graphhopper
                                                          merge two ways
                                                          with equal
                                                          flags and name
                                                          if there is no
                                                          intersection
                                                          between them
                                                          (no third way
                                                          connected)?<br>
                                                          <br>
                                                          I would like
                                                          to create a
                                                          very reduces
                                                          graph with
                                                          only few
                                                          edges. What
                                                          would be the
                                                          easiest way to
                                                          achieve it? I
                                                          think I would
                                                          have to
                                                          disable the
                                                          nameIndex for
                                                          instance.<br>
                                                          <br>
                                                          Thanks,<br>
                                                          <br>
                                                          Jan<br>
                                                          <br>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </div>
                                                        </div>
                                                      </div>
                                                    </blockquote>
                                                  </div>
                                                </div>
                                              </blockquote>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                      </blockquote>
                                    </div>
                                  </div>
                                </blockquote>
                                <br>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>