Presentation work
This commit is contained in:
parent
2198b6ebbf
commit
69437cf0ad
5 changed files with 45 additions and 9 deletions
BIN
app/assets/images/routing-sprite.png
Normal file
BIN
app/assets/images/routing-sprite.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
|
@ -351,12 +351,14 @@ $(document).ready(function () {
|
|||
e.preventDefault();
|
||||
$(".query_wrapper.search").hide();
|
||||
$(".query_wrapper.routing").show();
|
||||
$(".query_wrapper.routing [name=route_from]").focus();
|
||||
});
|
||||
|
||||
$(".close_directions").on("click",function(e) {
|
||||
e.preventDefault();
|
||||
$(".query_wrapper.search").show();
|
||||
$(".query_wrapper.routing").hide();
|
||||
$(".query_wrapper.search [name=query]").focus();
|
||||
});
|
||||
|
||||
OSM.routing = OSM.Routing(map,'OSM.routing',$('.query_wrapper.routing'));
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
https://github.com/apmon/openstreetmap-website/blob/9755c3ae0a8d0684d43760f91dc864ff42d8477a/app/views/routing/start.js.erb
|
||||
|
||||
*** draggable start/end markers
|
||||
|
||||
*** click each part
|
||||
*** translation (including all alerts and presentation)
|
||||
*** export GPX
|
||||
*/
|
||||
|
||||
var TURN_INSTRUCTIONS=["",
|
||||
|
@ -85,22 +87,31 @@ OSM.Routing=function(map,name,jqSearch) {
|
|||
r.setPolyline=function(line) {
|
||||
if (r.polyline) map.removeLayer(r.polyline);
|
||||
r.polyline=L.polyline(line, ROUTING_POLYLINE).addTo(r.map);
|
||||
// *** zoom to fit
|
||||
r.map.fitBounds(r.polyline.getBounds());
|
||||
};
|
||||
|
||||
// Take an array of directions and write it out
|
||||
// (we use OSRM's route_instructions format)
|
||||
// *** translations?
|
||||
r.setItinerary=function(steps) {
|
||||
$("#content").removeClass("overlay-sidebar");
|
||||
$('#sidebar_content').empty();
|
||||
var html="";
|
||||
var html='<h2><a class="geolink" href="#"><span class="icon close"></span></a>Directions</h2>';
|
||||
html+="<table>";
|
||||
for (var i=0; i<steps.length; i++) {
|
||||
var s=steps[i];
|
||||
html+="<div class='route_step'>";
|
||||
html+=TURN_INSTRUCTIONS[s[0]] || s[0];
|
||||
html+=s[1];
|
||||
html+="</div>";
|
||||
var step=steps[i];
|
||||
var instCodes=step[0].split('-');
|
||||
// Assemble instruction text
|
||||
var instText="<b>"+(i+1)+".</b> ";
|
||||
instText+=TURN_INSTRUCTIONS[instCodes[0]];
|
||||
if (instCodes[1]) { instText+="exit "+instCodes[1]+" "; }
|
||||
if (instCodes[0]!=15) { instText+=step[1] ? "<b>"+step[1]+"</b>" : "(unnamed)"; }
|
||||
// Add to table
|
||||
html+="<tr>";
|
||||
html+="<td class='direction i"+instCodes[0]+"'> ";
|
||||
html+="<td>"+instText;
|
||||
}
|
||||
html+="</table>";
|
||||
$('#sidebar_content').html(html);
|
||||
};
|
||||
|
||||
|
@ -147,7 +158,11 @@ OSM.Routing=function(map,name,jqSearch) {
|
|||
this.requestJSONP(url);
|
||||
},
|
||||
gotRoute: function(data) {
|
||||
// *** save hints
|
||||
if (data.status==207) {
|
||||
alert("Couldn't find route between those two places");
|
||||
return false;
|
||||
}
|
||||
// *** store hints
|
||||
var line=L.PolylineUtil.decode(data.route_geometry);
|
||||
for (i=0; i<line.length; i++) { line[i].lat/=10; line[i].lng/=10; }
|
||||
r.setPolyline(line);
|
||||
|
|
|
@ -993,6 +993,21 @@ header .search_form {
|
|||
color: #f00;
|
||||
}
|
||||
|
||||
/* Rules for routing */
|
||||
|
||||
#sidebar_content>table {
|
||||
margin: 20px 0px 10px 15px;
|
||||
}
|
||||
|
||||
td.direction {
|
||||
background-image: image-url('routing-sprite.png');
|
||||
width: 20px; height: 20px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
@for $i from 1 through 17 {
|
||||
td.direction.i#{$i} { background-position: #{($i)*-20+20}px 0px; }
|
||||
}
|
||||
|
||||
/* Rules for entity history */
|
||||
|
||||
#sidebar_content {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue