use data.highway
This commit is contained in:
		
							parent
							
								
									d81ef3f4db
								
							
						
					
					
						commit
						10c5d76909
					
				| @ -256,16 +256,15 @@ function way_function (way, result) | ||||
|     return | ||||
|   end | ||||
| 
 | ||||
| 
 | ||||
|   -- initial routability check, filters out buildings, boundaries, etc | ||||
|   local highway = way:get_value_by_key("highway") | ||||
|   local route = way:get_value_by_key("route") | ||||
|   local man_made = way:get_value_by_key("man_made") | ||||
|   local railway = way:get_value_by_key("railway") | ||||
|   local amenity = way:get_value_by_key("amenity") | ||||
|   local public_transport = way:get_value_by_key("public_transport") | ||||
|   local bridge = way:get_value_by_key("bridge") | ||||
|   if (not highway or highway == '') and | ||||
| 
 | ||||
|   if (not data.highway or data.highway == '') and | ||||
|   (not route or route == '') and | ||||
|   (not profile.use_public_transport or not railway or railway=='') and | ||||
|   (not amenity or amenity=='') and | ||||
| @ -304,7 +303,7 @@ function way_function (way, result) | ||||
|   -- speed | ||||
|   local bridge_speed = profile.bridge_speeds[bridge] | ||||
|   if (bridge_speed and bridge_speed > 0) then | ||||
|     highway = bridge | ||||
|     data.highway = bridge | ||||
|     if duration and durationIsValid(duration) then | ||||
|       result.duration = math.max( parseDuration(duration), 1 ) | ||||
|     end | ||||
| @ -333,7 +332,7 @@ function way_function (way, result) | ||||
|     result.forward_mode = mode.train | ||||
|     result.backward_mode = mode.train | ||||
|     -- railways | ||||
|     if (not access and highway) or profile.access_tag_whitelist[access] then | ||||
|     if (not access and data.highway) or profile.access_tag_whitelist[access] then | ||||
|       result.forward_speed = profile.railway_speeds[railway] | ||||
|       result.backward_speed = profile.railway_speeds[railway] | ||||
|     end | ||||
| @ -341,10 +340,10 @@ function way_function (way, result) | ||||
|     -- parking areas | ||||
|     result.forward_speed = profile.amenity_speeds[amenity] | ||||
|     result.backward_speed = profile.amenity_speeds[amenity] | ||||
|   elseif profile.bicycle_speeds[highway] then | ||||
|   elseif profile.bicycle_speeds[data.highway] then | ||||
|     -- regular ways | ||||
|     result.forward_speed = profile.bicycle_speeds[highway] | ||||
|     result.backward_speed = profile.bicycle_speeds[highway] | ||||
|     result.forward_speed = profile.bicycle_speeds[data.highway] | ||||
|     result.backward_speed = profile.bicycle_speeds[data.highway] | ||||
|   elseif access and profile.access_tag_whitelist[access] then | ||||
|     -- unknown way, but valid access tag | ||||
|     result.forward_speed = default_speed | ||||
| @ -353,10 +352,10 @@ function way_function (way, result) | ||||
|     -- biking not allowed, maybe we can push our bike? | ||||
|     -- essentially requires pedestrian profiling, for example foot=no mean we can't push a bike | ||||
|     if foot ~= 'no' and (junction ~= "roundabout" and junction ~= "circular") then | ||||
|       if profile.pedestrian_speeds[highway] then | ||||
|       if profile.pedestrian_speeds[data.highway] then | ||||
|         -- pedestrian-only ways and areas | ||||
|         result.forward_speed = profile.pedestrian_speeds[highway] | ||||
|         result.backward_speed = profile.pedestrian_speeds[highway] | ||||
|         result.forward_speed = profile.pedestrian_speeds[data.highway] | ||||
|         result.backward_speed = profile.pedestrian_speeds[data.highway] | ||||
|         result.forward_mode = mode.pushing_bike | ||||
|         result.backward_mode = mode.pushing_bike | ||||
|       elseif man_made and profile.man_made_speeds[man_made] then | ||||
| @ -384,7 +383,7 @@ function way_function (way, result) | ||||
| 
 | ||||
|   -- direction | ||||
|   local impliedOneway = false | ||||
|   if junction == "roundabout" or junction == "circular" or highway == "motorway" then | ||||
|   if junction == "roundabout" or junction == "circular" or data.highway == "motorway" then | ||||
|     impliedOneway = true | ||||
|   end | ||||
| 
 | ||||
| @ -423,7 +422,7 @@ function way_function (way, result) | ||||
|   end | ||||
| 
 | ||||
|   -- pushing bikes | ||||
|   if profile.bicycle_speeds[highway] or profile.pedestrian_speeds[highway] then | ||||
|   if profile.bicycle_speeds[data.highway] or profile.pedestrian_speeds[data.highway] then | ||||
|     if foot ~= "no" and junction ~= "roundabout" and junction ~= "circular" then | ||||
|       if result.backward_mode == mode.inaccessible then | ||||
|         result.backward_speed = walking_speed | ||||
| @ -460,7 +459,7 @@ function way_function (way, result) | ||||
|   limit( result, maxspeed, maxspeed_forward, maxspeed_backward ) | ||||
| 
 | ||||
|   -- convert duration into cyclability | ||||
|   local is_unsafe = profile.safety_penalty < 1 and profile.unsafe_highway_list[highway] | ||||
|   local is_unsafe = profile.safety_penalty < 1 and profile.unsafe_highway_list[data.highway] | ||||
|   if result.forward_speed > 0 then | ||||
|     -- convert from km/h to m/s | ||||
|     result.forward_rate = result.forward_speed / 3.6; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user