The code should be easily adaptable if you pass the degree of the node (e.g. 2 or if endstanding then 1) and then you can also merge ways
Regards, Peter On 04.06.2015 00:14, John Zhao wrote: > Hi Peter, > > Thanks for the explanation. > I think the answer is: > there is no merging logic to combine 2 different but connected OSM > ways in GH. > GH only chop the long OSM ways into several edges by the intersections. > > *Best Regards,* > *ZhiQiang ZHAO* > > On Wed, Jun 3, 2015 at 2:27 PM, Peter <[email protected] > <mailto:[email protected]>> wrote: > > Hi John, > > the problem is as follows: > Assume the osm ways A-B-C (west to east) and D-E-F (north to south) > > Now if the node B is the same as F or E then we have a tower node > or junction. But if the nodes C and F are identical then this > would be a pillar node (and we handle it like a tower node). So > the import always assumes case 1 and we are always safe but in > some rare cases we could avoid creating a tower node. > > Regards, > Peter > > > On 03.06.2015 23:13, John Zhao wrote: >> Hi Peter, >> >> I am more confused. >> I think the original question is: >> If there are 2 different OSMways in original OSM data, they and >> only they are connected. >> And all the other tags are the same. >> Does Graphhopper will merge them into a single edge in GH? >> Then the graph is a little bit simplified. >> >> *Best Regards,* >> *ZhiQiang ZHAO* >> >> On Wed, Jun 3, 2015 at 2:07 PM, Peter <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi John, >> >> good question :) >> >> 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. >> >> Regards, >> Peter >> >> >> >> On 03.06.2015 22:16, John Zhao wrote: >>> Hi Peter, >>> >>> That sounds reasonable. But I am still confused. >>> I think the logic is under the below logic. >>> 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". >>> >>> void prepareHighwayNode( long osmId ) >>> >>> { >>> >>> int tmpIndex = getNodeMap().get(osmId); >>> >>> if (tmpIndex == EMPTY) >>> >>> { >>> >>> // osmId is used exactly once >>> >>> getNodeMap().put(osmId, PILLAR_NODE); >>> >>> } else if (tmpIndex > EMPTY) >>> >>> { >>> >>> // mark node as tower node as it occured at >>> least twice times >>> >>> getNodeMap().put(osmId, TOWER_NODE); >>> >>> } else >>> >>> { >>> >>> // tmpIndex is already negative (already tower node) >>> >>> } >>> >>> } >>> >>> >>> *Best Regards,* >>> *ZhiQiang ZHAO* >>> >>> On Wed, Jun 3, 2015 at 12:15 PM, Peter <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi, >>> >>> the details are a bit trickier as we do everything very >>> memory efficient. >>> >>> And if a osm node occurs twice it is a pillar node, >>> otherwise it is a tower node. >>> >>> Kind Regards, >>> Peter >>> >>> >>> On 03.06.2015 21:05, John Zhao wrote: >>>> I go through the logic: >>>> It go through all osmways, and count the occurrence of >>>> nodeID. >>>> if nodeID appear only once, it's a pillar node. >>>> otherwise, it's a tower node. >>>> >>>> That's it. Do I miss something? >>>> >>>> >>>> *Best Regards,* >>>> *ZhiQiang ZHAO* >>>> >>>> On Wed, Jun 3, 2015 at 11:55 AM, Peter >>>> <[email protected] <mailto:[email protected]>> wrote: >>>> >>>> Hi, >>>> >>>> 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 >>>> >>>> Regards, >>>> Peter >>>> >>>> >>>> On 03.06.2015 20:35, John Zhao wrote: >>>>> Hi Peter, >>>>> >>>>> Could you tell me where is the merging logic? >>>>> That's interesting. >>>>> >>>>> *Best Regards,* >>>>> *ZhiQiang ZHAO* >>>>> >>>>> On Wed, Jun 3, 2015 at 12:09 AM, Peter >>>>> <[email protected] <mailto:[email protected]>> >>>>> wrote: >>>>> >>>>> Hi Jan, >>>>> >>>>> 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. >>>>> >>>>> >>>>> > Have you made a experiment to count the number of >>>>> 2 degree nodes with the equal flags and name >>>>> in OSM? >>>>> > And then we can know how many edges we can save. >>>>> >>>>> Yes, this should be done before implementing it :) >>>>> >>>>> 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. >>>>> >>>>> Issues like #234 or #111 will probably make >>>>> more difference. >>>>> >>>>> Kind Regards, >>>>> Peter >>>>> >>>>> >>>>> On 02.06.2015 22:35, John Zhao wrote: >>>>>> Hi, >>>>>> >>>>>> AFAIK, there is no this kind of merging logic >>>>>> here. >>>>>> Wait the answer from Peter. >>>>>> Probably you need to implement it by your own. >>>>>> And it's not easy. >>>>>> Maybe can be done before import? >>>>>> What you want, is actually convert a tower >>>>>> node to a pillar node. >>>>>> >>>>>> >>>>>> *Best Regards,* >>>>>> *ZhiQiang ZHAO* >>>>>> >>>>>> On Tue, Jun 2, 2015 at 1:27 PM, Jan Torben >>>>>> Heuer <[email protected] <mailto:[email protected]>> >>>>>> wrote: >>>>>> >>>>>> Hi ZhiQiang ZHAO, >>>>>> >>>>>> Thanks for your quick answer. >>>>>> 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. >>>>>> >>>>>> Jan >>>>>> >>>>>> Am 02.06.2015 um 21:53 schrieb John Zhao >>>>>> <[email protected] >>>>>> <mailto:[email protected]>>: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Have you made a experiment to count the >>>>>>> number of 2 degree nodes with the equal >>>>>>> flags and name in OSM? >>>>>>> And then we can know how many edges we >>>>>>> can save. >>>>>>> >>>>>>> I doubt this should be not too much for OSM. >>>>>>> >>>>>>> *Best Regards,* >>>>>>> *ZhiQiang ZHAO* >>>>>>> >>>>>>> On Tue, Jun 2, 2015 at 11:59 AM, Jan >>>>>>> Torben Heuer <[email protected] >>>>>>> <mailto:[email protected]>> wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Can Graphhopper merge two ways with >>>>>>> equal flags and name if there is no >>>>>>> intersection between them (no third >>>>>>> way connected)? >>>>>>> >>>>>>> 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. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Jan >>>>>>> >>>>> >>>> >>> >>> > >
_______________________________________________ GraphHopper mailing list [email protected] https://lists.openstreetmap.org/listinfo/graphhopper
