Not sure how geometrically sound this is. Why not use Mercartor projection to fix this?

```C++
template<class CoordinateT>
double EdgeBasedGraphFactory::GetAngleBetweenTwoEdges(const CoordinateT& A, const CoordinateT& C, const CoordinateT& B) const {
    const double v1x = (A.lon - C.lon)/100000.;
    const double v1y = lat2y((A.lat - C.lat)/100000.);
    const double v2x = (B.lon - C.lon)/100000.;
    const double v2y = lat2y((B.lat - C.lat)/100000.);

    double angle = (atan2(v2y,v2x) - atan2(v1y,v1x) )*180/M_PI;
    while(angle < 0)
        angle += 360;
    return angle;
}
```

The `lat2y()` function is in DataStructures/MercatorUtil.h and one of benefits is that Mercator Projection preserves angles.