Fixes issue #62. Initial "O m" instruction won't be shown anymore.
This commit is contained in:
parent
0dc77b056a
commit
cc91ee1c52
@ -40,8 +40,9 @@ struct TurnInstructionsClass {
|
|||||||
const static short EnterRoundAbout = 11;
|
const static short EnterRoundAbout = 11;
|
||||||
const static short LeaveRoundAbout = 12;
|
const static short LeaveRoundAbout = 12;
|
||||||
const static short StayOnRoundAbout = 13;
|
const static short StayOnRoundAbout = 13;
|
||||||
|
const static short StartAtEndOfStreet = 14;
|
||||||
|
|
||||||
std::string TurnStrings[14];
|
std::string TurnStrings[15];
|
||||||
std::string Ordinals[11];
|
std::string Ordinals[11];
|
||||||
|
|
||||||
//This is a hack until c++0x is available enough to use initializer lists.
|
//This is a hack until c++0x is available enough to use initializer lists.
|
||||||
@ -60,6 +61,7 @@ struct TurnInstructionsClass {
|
|||||||
TurnStrings[11] = "Enter round-about";
|
TurnStrings[11] = "Enter round-about";
|
||||||
TurnStrings[12] = "Leave round-about";
|
TurnStrings[12] = "Leave round-about";
|
||||||
TurnStrings[13] = "Stay on round-about";
|
TurnStrings[13] = "Stay on round-about";
|
||||||
|
TurnStrings[14] = "Start";
|
||||||
|
|
||||||
Ordinals[0] = "zeroth";
|
Ordinals[0] = "zeroth";
|
||||||
Ordinals[1] = "first";
|
Ordinals[1] = "first";
|
||||||
@ -105,48 +107,6 @@ struct TurnInstructionsClass {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static inline void getDirectionOfInstruction(double angle, DirectionOfInstruction & dirInst) {
|
|
||||||
// if(angle >= 23 && angle < 67) {
|
|
||||||
// dirInst.direction = "southeast";
|
|
||||||
// dirInst.shortDirection = "SE";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 67 && angle < 113) {
|
|
||||||
// dirInst.direction = "south";
|
|
||||||
// dirInst.shortDirection = "S";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 113 && angle < 158) {
|
|
||||||
// dirInst.direction = "southwest";
|
|
||||||
// dirInst.shortDirection = "SW";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 158 && angle < 202) {
|
|
||||||
// dirInst.direction = "west";
|
|
||||||
// dirInst.shortDirection = "W";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 202 && angle < 248) {
|
|
||||||
// dirInst.direction = "northwest";
|
|
||||||
// dirInst.shortDirection = "NW";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 248 && angle < 292) {
|
|
||||||
// dirInst.direction = "north";
|
|
||||||
// dirInst.shortDirection = "N";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(angle >= 292 && angle < 336) {
|
|
||||||
// dirInst.direction = "northeast";
|
|
||||||
// dirInst.shortDirection = "NE";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// dirInst.direction = "East";
|
|
||||||
// dirInst.shortDirection = "E";
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static TurnInstructionsClass TurnInstructions;
|
static TurnInstructionsClass TurnInstructions;
|
||||||
|
@ -94,6 +94,10 @@ unsigned DescriptionFactory::Run(const unsigned zoomLevel) {
|
|||||||
indexOfSegmentBegin = i;
|
indexOfSegmentBegin = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(pathDescription[0].length == 0){
|
||||||
|
INFO("Start at End of street");
|
||||||
|
pathDescription[0].turnInstruction = 14;
|
||||||
|
}
|
||||||
|
|
||||||
//Generalize poly line
|
//Generalize poly line
|
||||||
dp.Run(pathDescription, zoomLevel);
|
dp.Run(pathDescription, zoomLevel);
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
//======================
|
//======================
|
||||||
// OBJECTS
|
// OBJECTS
|
||||||
//Map
|
//Map
|
||||||
//var HOST_ROUTING_URL = 'http://localhost:5000/viaroute';
|
|
||||||
var HOST_ROUTING_URL = 'http://routingdemo.geofabrik.de/route-via/';
|
var HOST_ROUTING_URL = 'http://routingdemo.geofabrik.de/route-via/';
|
||||||
var HOST_WEBSITE = 'http://map.project-osrm.org/';//location.host
|
var HOST_WEBSITE = 'http://map.project-osrm.org/';//location.host
|
||||||
|
|
||||||
@ -100,7 +99,9 @@ function reroute() {
|
|||||||
*/
|
*/
|
||||||
function showResultsDragRoute(response) {
|
function showResultsDragRoute(response) {
|
||||||
if (response) {
|
if (response) {
|
||||||
//Display Route
showRouteGeometry(response);
}
|
//Display Route
|
||||||
|
showRouteGeometry(response);
|
||||||
|
}
|
||||||
markersLayer.clearMarkers();
|
markersLayer.clearMarkers();
|
||||||
ISCALCULATING = false;
|
ISCALCULATING = false;
|
||||||
}
|
}
|
||||||
@ -149,16 +150,32 @@ function showResultsRoute(response) {
|
|||||||
//Show Route Instructions
|
//Show Route Instructions
|
||||||
output += '<table>';
|
output += '<table>';
|
||||||
lengthOfArray = response.route_instructions.length;
|
lengthOfArray = response.route_instructions.length;
|
||||||
for (i = 0; i < lengthOfArray; i++) {
|
|
||||||
|
var rowstyle='routeInstructionsEven';
|
||||||
|
var indexPos = response.route_instructions[0][3];
|
||||||
|
var point = allRoutePoints[indexPos];
|
||||||
|
|
||||||
|
//Hack to suppress output of initial "0m" instruction
|
||||||
|
output += '<tr class="'+rowstyle+'"><td align="right" valign="top"><span class="routeSummarybold">1.</span></td><td class="'+rowstyle+'"><a href="#" class="nolinkStyle" onclick="setMapCenter(new OpenLayers.LonLat('+point.x+','+point.y+'));">'+response.route_instructions[0][0]+' on '+response.route_instructions[0][1];
|
||||||
|
if(response.route_instructions[0][2] != 0)
|
||||||
|
output += ' for '+getDistanceWithUnit(response.route_instructions[0][2]);
|
||||||
|
output += '</a></td></tr>';
|
||||||
|
|
||||||
|
for (i = 1; i < lengthOfArray; i++) {
|
||||||
//console.log(response.route_instructions[i]);
|
//console.log(response.route_instructions[i]);
|
||||||
//odd or even ?
|
//odd or even ?
|
||||||
var rowstyle='routeInstructionsOdd';
|
if(i%2==0){
|
||||||
if(i%2==0){ rowstyle='routeInstructionsEven'; }
|
rowstyle='routeInstructionsEven';
|
||||||
|
} else {
|
||||||
|
rowstyle='routeInstructionsOdd';
|
||||||
|
}
|
||||||
|
|
||||||
var indexPos = response.route_instructions[i][3];
|
indexPos = response.route_instructions[i][3];
|
||||||
//console.log('setting : ' + response.route_instructions[i] + ' at ' + allRoutePoints[indexPos]);
|
//console.log('setting : ' + response.route_instructions[i] + ' at ' + allRoutePoints[indexPos]);
|
||||||
var point = allRoutePoints[indexPos];
|
point = allRoutePoints[indexPos];
|
||||||
output += '<tr class="'+rowstyle+'"><td align="right" valign="top"><span class="routeSummarybold">'+(i+1)+'.</span></td><td class="'+rowstyle+'"><a href="#" class="nolinkStyle" onclick="setMapCenter(new OpenLayers.LonLat('+point.x+','+point.y+'));">'+response.route_instructions[i][0]+' on '+response.route_instructions[i][1]+' for '+getDistanceWithUnit(response.route_instructions[i][2])+'</a></td></tr>';
}
|
|
||||||
|
output += '<tr class="'+rowstyle+'"><td align="right" valign="top"><span class="routeSummarybold">'+(i+1)+'.</span></td><td class="'+rowstyle+'"><a href="#" class="nolinkStyle" onclick="setMapCenter(new OpenLayers.LonLat('+point.x+','+point.y+'));">'+response.route_instructions[i][0]+' on '+response.route_instructions[i][1]+' for '+getDistanceWithUnit(response.route_instructions[i][2])+'</a></td></tr>';
|
||||||
|
}
|
||||||
var rowstyle='routeInstructionsOdd';
|
var rowstyle='routeInstructionsOdd';
|
||||||
if(i%2==0){ rowstyle='routeInstructionsEven'; }
|
if(i%2==0){ rowstyle='routeInstructionsEven'; }
|
||||||
if( lengthOfArray > 0) {
|
if( lengthOfArray > 0) {
|
||||||
@ -168,7 +185,8 @@ function showResultsRoute(response) {
|
|||||||
output += '</table>';
|
output += '</table>';
|
||||||
//alert(vectorLayerRoute.features[0].geometry.getVertices());
|
//alert(vectorLayerRoute.features[0].geometry.getVertices());
|
||||||
|
|
||||||
document.getElementById('information').innerHTML = output;
ISCALCULATING = false;
|
document.getElementById('information').innerHTML = output;
|
||||||
|
ISCALCULATING = false;
|
||||||
ISCALCULATINGVIA = false;
|
ISCALCULATINGVIA = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,8 +246,10 @@ function showRouteGeometry(response) {
|
|||||||
* showNoNameStreets()-Function to show route result
|
* showNoNameStreets()-Function to show route result
|
||||||
*/
|
*/
|
||||||
function showNoNameStreets(response) {
|
function showNoNameStreets(response) {
|
||||||
if (response) {
allRoutePoints.length = 0;
|
if (response) {
|
||||||
vectorLayerRoute.removeFeatures(vectorLayerRoute.features);
// now with compression of the route geometry
|
allRoutePoints.length = 0;
|
||||||
|
vectorLayerRoute.removeFeatures(vectorLayerRoute.features);
|
||||||
|
// now with compression of the route geometry
|
||||||
var geometry = decodeRouteGeometry(response.route_geometry, 5);
|
var geometry = decodeRouteGeometry(response.route_geometry, 5);
|
||||||
var lengthOfArray = geometry.length;
|
var lengthOfArray = geometry.length;
|
||||||
var points = [];
|
var points = [];
|
||||||
@ -243,7 +263,8 @@ function showNoNameStreets(response) {
|
|||||||
var indexPos = response.route_instructions[i][3];
|
var indexPos = response.route_instructions[i][3];
|
||||||
var streetName = response.route_instructions[i][1];
|
var streetName = response.route_instructions[i][1];
|
||||||
if(streetName == ''){ colors[indexPos] = "#FF00FF"; }
|
if(streetName == ''){ colors[indexPos] = "#FF00FF"; }
|
||||||
else{ colors[indexPos] = "#0033ff"; }
}
|
else{ colors[indexPos] = "#0033ff"; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//delete any previously displayed via route
|
//delete any previously displayed via route
|
||||||
@ -252,7 +273,10 @@ function showNoNameStreets(response) {
|
|||||||
|
|
||||||
//Create Route Layer for Display
|
//Create Route Layer for Display
|
||||||
var color = "#0033ff";
|
var color = "#0033ff";
|
||||||
var changeColor = false;
for (var i = 0; i < lengthOfArray; i++) {
var point = new OpenLayers.Geometry.Point(geometry[i][1], geometry[i][0]).transform(EPSG_4326, EPSG_900913);
points.push(point);
|
var changeColor = false;
|
||||||
|
for (var i = 0; i < lengthOfArray; i++) {
|
||||||
|
var point = new OpenLayers.Geometry.Point(geometry[i][1], geometry[i][0]).transform(EPSG_4326, EPSG_900913);
|
||||||
|
points.push(point);
|
||||||
allRoutePoints.push(point);
|
allRoutePoints.push(point);
|
||||||
|
|
||||||
if(colors[i] != undefined){ changeColor=true;}
|
if(colors[i] != undefined){ changeColor=true;}
|
||||||
@ -262,14 +286,15 @@ function showNoNameStreets(response) {
|
|||||||
strokeColor: color,
|
strokeColor: color,
|
||||||
strokeOpacity: 0.7,
|
strokeOpacity: 0.7,
|
||||||
strokeWidth: 5
|
strokeWidth: 5
|
||||||
});
|
});
|
||||||
vectorLayerRoute.addFeatures([feature]);
|
vectorLayerRoute.addFeatures([feature]);
|
||||||
points = [];
|
points = [];
|
||||||
points.push(point);
|
points.push(point);
|
||||||
|
|
||||||
if(colors[i] != undefined){ color = colors[i]; }
|
if(colors[i] != undefined){ color = colors[i]; }
|
||||||
changeColor=false;
|
changeColor=false;
|
||||||
}
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user