[GraphHopper] Adding custom weight to edge
Markus
s0870203 at mail.zih.tu-dresden.de
Thu Mar 12 00:18:41 UTC 2015
Hi Peter,
yes exactly that was the problem.
Thx that helped a lot. I got it to work :)
But that means I need to handle the start/end edge separately?
Right now I still matching on the phone. But for a bigger amount of GPS points it would make sense to do that on the server.
If I do the matching on the server and as long as I don't reimport from a different osm file the graph should work?
And again thx for the great support :)
Amazing project!
All the best Markus
On Monday 09 March 2015 20:50:12 Peter wrote:
> Hi Markus,
>
> do you find that all but the starting and ending edges do match or none
> at all?
>
> If only starting and ending edges, yes you will have to map the virtual
> edges to the real edges like I do in the map matching code in the
> fillVirtualEdges with the virtualEdgesMap:
> https://github.com/graphhopper/map-matching/blob/master/src/main/java/com/graphhopper/matching/MapMatching.java#L525
>
> (ignore the traverseToClosestRealAdj method for this, as your situation
> is not dependent on the direction I think)
>
> Kind Regards,
> Peter
>
> On 09.03.2015 14:11, Markus wrote:
> > Hi Peter,
> >
> > Any hint how I get the QueryResult in the calcWeight?
> > So far I was using:
> >
> > public class MyWeighting extends PriorityWeighting {
> > ...
> > @Override
> > public double calcWeight( EdgeIteratorState edgeState, boolean reverse, int
> > prevOrNextEdgeId )
> > {
> > double weight = super.calcWeight(edgeState, reverse, prevOrNextEdgeId);
> > if (Double.isInfinite(weight))
> > return Double.POSITIVE_INFINITY;
> > double tempWeight =weight / (0.5
> > +encoder.getDouble(edgeState.getFlags(), KEY));
> > int calcEdge=edgeState.getEdge();
> > if(myWeightList.containsKey(calcEdge)) {
> > //do some calculation
> > return (myWeight!=0 ? tempWeight*myWeight : tempWeight);
> > }
> > else
> > return tempWeight;
> >
> > for the creation of myWeightList I'm use
> > QueryResult myQR = index.findClosest(tmpPoint.getLat(),tmpPoint.getLon(),
> > EdgeFilter.ALL_EDGES);
> > in a different class.
> >
> > I could use for calcEdge the findClosest() with
> > edgeState.fetchWayGeometry.getLat/getLon and create a QueryResult
> > but I guess that is not the way to go.
> >
> >
> > btw I forgot to mention I'm using Graphhopper 4.0.0, if that is important.
> >
> > thx Markus
> >
> > On Monday 09 March 2015 11:07:15 Peter wrote:
> >> Hi Markus,
> >>
> >> you can use a method like this. Try QueryResult.closestEdge.getEdge
> >> instead of the edgeIds from the EdgeIterator of that query point as they
> >> are 'virtual edges'.
> >>
> >> But be aware that if you reimport from a new OSM file you will need to
> >> re-do the edgeID mapping.
> >>
> >> Regards,
> >> Peter
> >>
> >> On 08.03.2015 15:07, Markus wrote:
> >>> Hey,
> >>>
> >>> I'm having an Android App and bunch of GPS points I'm loading them
> >>> from a server. Each GPS point has a weighting value assigned and should
> >>> alter the weight of an edge they belonging to.
> >>>
> >>> I'm struggling with assigning my data to the right edges to use them for
> >>> the path calculation.
> >>>
> >>> I'm using getLocationIndex() findClosest() and assign the weight to the
> >>> edge and store this data in a Map during an AsyncTask.
> >>> In the weight calculation I'm checking if the edge in my Map is the same
> >>> as
> >>> the one graphhopper is handling at the moment and if so add the weighting
> >>> to the calculation.
> >>>
> >>> But the edges stored in the Map are different from the once I get with
> >>> getEdge() from EdgeIteratorState (the doc also states that I shouldn't
> >>> make
> >>> any assumptions about the concrete values).
> >>> Is there a way to get the EdgeID so I can store my information in the Map?
> >>>
> >>> Is there a nice way to solve that?
> >>>
> >>>
> >>> Thx Markus
> >>>
>
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/graphhopper
>
More information about the GraphHopper
mailing list