Ferries are now extracted with 25 kph average speed.

This commit is contained in:
Dennis Luxen 2010-08-12 16:49:59 +00:00
parent 106155a97a
commit 3bdfd1437b
2 changed files with 326 additions and 300 deletions

View File

@ -38,10 +38,11 @@ or see http://www.gnu.org/licenses/agpl.txt.
residential 40
living_street 10
service 30
ferry 25
*/
string names[13] = { "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", "secondary", "secondary_link", "tertiary", "unclassified", "residential", "living_street", "service" };
double speeds[13] = { 110, 90, 90, 70, 70, 60, 60, 50, 55, 50, 40 , 10, 30};
string names[14] = { "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", "secondary", "secondary_link", "tertiary", "unclassified", "residential", "living_street", "service", "ferry" };
double speeds[14] = { 110, 90, 90, 70, 70, 60, 60, 50, 55, 50, 40 , 10, 30, 25};
struct _Node : NodeInfo{
bool trafficSignal;
@ -80,6 +81,12 @@ struct _Way {
short type;
};
struct _Relation {
enum {
unknown = 0, ferry
} type;
};
struct _Edge {
_Edge() {};
_Edge(NodeID s, NodeID t) : start(s), target(t) { }
@ -210,6 +217,15 @@ _Way _ReadXMLWay( xmlTextReaderPtr& inputReader, Settings& settings ) {
way.maximumSpeed = 10;
way.usefull = true;
}
} else if ( xmlStrEqual( k, ( const xmlChar* ) "route" ) == 1 ) {
string route( (const char* ) value );
if (route == "ferry") {
for ( int i = 0; i < settings.speedProfile.names.size(); i++ ) {
way.maximumSpeed = 25;
way.usefull = true;
way.direction == _Way::oneway;
}
}
} else if ( xmlStrEqual( k, ( const xmlChar* ) "highway" ) == 1 ) {
string name( ( const char* ) value );
for ( int i = 0; i < settings.speedProfile.names.size(); i++ ) {
@ -374,6 +390,13 @@ _Node _ReadXMLNode( xmlTextReaderPtr& inputReader ) {
return node;
}
_Relation _ReadXMLRelation ( xmlTextReaderPtr& inputReader ) {
_Relation relation;
relation.type = _Relation::unknown;
return relation;
}
double ApproximateDistance( const int lat1, const int lon1, const int lat2, const int lon2 ) {
static const double DEG_TO_RAD = 0.017453292519943295769236907684886;
///Earth's quatratic mean radius for WGS-84

View File

@ -88,7 +88,7 @@ int main (int argc, char *argv[])
SignalNodes.push_back( node.id );
}
else if ( xmlStrEqual( currentName, ( const xmlChar* ) "way" ) == 1 ) {
if ( xmlStrEqual( currentName, ( const xmlChar* ) "way" ) == 1 ) {
_Way way = _ReadXMLWay( inputReader, settings );
if ( way.usefull && way.access && way.path.size() ) {
@ -117,6 +117,9 @@ int main (int argc, char *argv[])
}
}
}
}
if ( xmlStrEqual( currentName, ( const xmlChar* ) "relation" ) == 1 ) {
}
xmlFree( currentName );
}