Hi there
We have some questions about A* Implementation; we were thinking to use the TraversalAStar, since we really like the traversal framework and it's simpler to wotk on it
By the way, also by using the not traversal AStar (the classical implementatin), as estimateevaluator we used the CommonEvaluators.geoEstimateEvaluator; now in our routing calculation, we noticed some strange paths (we checked for several points and we compared the result with google and other routing systems)
We, then, created a custom estimateevaluator; we simply created the following:
EstimateEvaluator<Double> estimateEvaluator = new EstimateEvaluator<Double>()
{
public Double getCost( final Node node, final Node goal )
{
double dx = (Double) node.getProperty(OSMAttribute.LONGITUDE_PROPERTY ) - (Double) goal.getProperty( OSMAttribute.LONGITUDE_PROPERTY );
double dy = (Double) node.getProperty( OSMAttribute.LATITUDE_PROPERTY ) - (Double) goal.getProperty( OSMAttribute.LATITUDE_PROPERTY );
double result = Math.sqrt( Math.pow( dx, 2 ) + Math.pow( dy, 2 ) );
return result;
}
};
Well by using this evaluator the returned path are pretty similar to the ones returned by google and the other softwares. Does anybody know the reason of this behaviour? Are we missing anything?
Moreover.....may you tell us the maturity of the TraversalAStar implementation? In the source code we saw that it's in experimental status but for the few tests we did it seems to work good....is it possible to use it in production environment?
Thank you
Angelo