<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 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 11:55 AM, Peter <span dir="ltr"><<a 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 class="h5"><br>
      <br>
      On 03.06.2015 20:35, John Zhao wrote:<br>
    </div></div></div><div><div class="h5">
    <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 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 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 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 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>

<br>_______________________________________________<br>
GraphHopper mailing list<br>
<a href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
<br></blockquote></div><br></div>