First working edge based version. Still missing: GPX export; Via Points;

origin,destination on same edge, descriptions
This commit is contained in:
DennisOSRM
2011-11-14 19:36:31 +01:00
parent 34e4ead885
commit 97afa231ca
24 changed files with 512 additions and 1248 deletions
+11 -11
View File
@@ -62,10 +62,6 @@ private:
delete _heapForward;
}
};
union _MiddleName {
NodeID nameID;
NodeID middle;
};
public:
@@ -73,12 +69,13 @@ public:
NodeID source;
NodeID target;
struct EdgeData {
int distance : 30;
bool shortcut : 1;
bool forward : 1;
bool backward : 1;
short type:7;
_MiddleName middleName;
NodeID via;
unsigned nameID1;
unsigned nameID2;
int distance;
bool shortcut;
bool forward;
bool backward;
} data;
//sorts by source and other attributes
@@ -95,7 +92,10 @@ public:
}
bool operator== ( const Edge& right ) const {
return ( source == right.source && target == right.target && data.distance == right.data.distance && data.shortcut == right.data.shortcut && data.forward == right.data.forward && data.backward == right.data.backward && data.middleName.middle == right.data.middleName.middle );
return ( source == right.source && target == right.target && data.distance == right.data.distance &&
data.shortcut == right.data.shortcut && data.forward == right.data.forward && data.backward == right.data.backward
&& data.via == right.data.via && data.nameID1 == right.data.nameID1 && data.nameID2 == right.data.nameID2
);
}
};
+1 -6
View File
@@ -117,6 +117,7 @@ public:
edge.data.shortcut = false;
edge.data.nameID1 = i->nameID1();
edge.data.nameID2 = i->nameID2();
edge.data.via = i->via();
edge.data.turnType = i->turnType();
edge.data.forward = i->isForward();
edge.data.backward = i->isBackward();
@@ -430,12 +431,6 @@ private:
return edgeQuotionFactor * ((( double ) stats.edgesAdded ) / stats.edgesDeleted ) + originalQuotientFactor * ((( double ) stats.originalEdgesAdded ) / stats.originalEdgesDeleted ) + depthFactor * nodeData->depth;
}
/*
8 * numAdded / numDeleted + 4 * numOriginalAdded / numOriginalDeleted + 2 * Tiefe
Kante einfüge = numAdded += 2 && numOriginalAdded += 2 * numOriginal
Kante löschen = numDeleted += 1 && numOriginalAdded += numOriginal
*/
template< class Edge >
bool _CheckCH()
{