Skip to content

POI specs

Daisuke Sato edited this page Dec 18, 2017 · 8 revisions

Last updated: 2017-03-22

NavCog POI overview

NavCog POI is aiming to describe accessibility information that could not express in spatial pedestrian network (SPN) 2010 (*1).

SPN describe pedestrian network by nodes, links, and facilities

  • node indicates just a location
  • link has two nodes (start, end) and describes attributes for accessibility
  • facilitiy is coupled with a node by a relation called entrance and describes information of destinations of navigation like shops, restaurants, restrooms, and so on.
  • name: name of the facility
  • long_description: description of the facility. NavCog will read it when the user has arrived the the facility as a destination.
  • endtrance (doorway) has a node and a facility to mark the node is the entrance of the facility.
  • name: name of the entrance

Accessibility information in SPN link

for wheelchair users

  • incline/across incline (graduation/crossfall) of slope
  • effective width of route
  • step height
  • road condition
  • step lift
  • stair lift
  • accessible escalator
  • accessible elevator

for visually impaired users

  • tactile paving
  • auditory guidance device
  • Braille for elevator buttons

for others

  • handrails
  • bus stop existence
  • trafic light existence

*1. Spatial pedestrian network 2010 is a draft document by MLIT (Ministry of Land, Infrastructure, Transport and Tourism), Japan (PDF in Japanese). Spatial pedestrian network 2017 is planned to be published.

NavCog POI spec (as of Mar. 22th, 2017)

NavCog POI is defined as an extension of SPN facility. The following table shows extended attributes. This extension is originally for extension of facility itself to describes facility category in a shopping mall.

Extended Attribute Name Value
major_category _nav_poi_ (required)
sub_category (CATEGORY) (required)
minor_category (FLAG)*
heading from -180 to 180. orientation of the information (North=0,East=90,West=-90,South=180,-180), not specified = 0
angle from 0 to 180. effective angle from the heading to both side (angle=45 makes 90 degree), not specified = 180
height floor of the poi.
0 means outside.
1 means 1st floor. 2 means 2nd floor.
-1 means first basement.
if it is not specified, it will be applied to every floors at the location
name name of the POI in default language
long_description long description of the POI in default language
name:<lang_code> name of the POI for the language.
<lang_code> is like ja or en
see ISO 639-1
long_description:<lang_code> long description of the POI for the language

CATEGORY: NavCog POI category

sub_category: _nav_corner_end_

item description
Purpose Inform users that the corner is at the end of corridor.
Required <height>
Optional <heading>, <angle>
Not used <name>, <long_description>, <minor_category>
Timing Link Navigation, Link Target Approached
Example 1 proceed 7 meters... and make a left turn "at the end of corridor"
Example 2 Turn left "at the end of corridor"
Sample corner end usually depends on direction image
Logic inAngleAtTarget &&
inAngleLast &&
dLocToTarget < C.POI_TARGET_DISTANCE_THRESHOLD

sub_category: _nav_corner_landmark_

item description
Purpose Inform users that a landmark exists at the corner
Required <height>, <name>
Optional <heading>, <angle>
Not used <long_description>, <minor_category>
Timing Link Navigation, Link Target Approached
Example 1 proceed 7 meters... and make a left turn "at the<poi.name>"
Example 2 Turn left "at the<poi.name>"
Sample if the landmark can be used from specific direction image
Sample if the landmark can be used from any direction image
Logic inAngleAtTarget &&
inAngleLast &&
dLocToTarget < C.POI_TARGET_DISTANCE_THRESHOLD

sub_category: _nav_corner_warning_block_

item description
Purpose Inform users that the corner has a warning tactile indicator.
Required <height>
Optional <heading>, <angle>
Not used <name>, <long_description>, <minor_category>
Timing Link Navigation, Link Target Approached
Example 1 proceed 7 meters... and make a left turn "at a warning tactile"
Example 2 Turn left "at a warning tactile"
Sample warning tactile usually does not depends on direction image
Logic inAngleAtTarget &&
inAngleLast &&
dLocToTarget < C.POI_TARGET_DISTANCE_THRESHOLD

sub_category: _nav_door_

item description
Purpose Inform users existence of doors. Announce will be provided before the first door. If the next door is within 5 meters from the last door and the type of doors are the same, annouce will be combined.
minor_category [_flag_auto_]
if the door is an auto door set _flag_auto_
Required
Optional <minor_category>, <height>
Not used <name>, <long_description>, <heading>, <angle>
Timing POI Approaching
Example 1 "there is an auto door"
Example 2 "there are 2 doors", "there are 3 auto doors"
Sample place on each door image

sub_category: _nav_elevator_

item description
Purpose Inform users the information about elevator call buttons at the elevator hall
minor_category _button_right_|_button_left_|_button_middle_ _button_right_braille_|_button_left_braille_|_button_middle_braille_, [_flag_plural_], [_flag_lower_]
Required <minor_category>
Optional <height>, <heading>, <angle>
Not used <name>, <long_description>
Timing Link Navigation
Example 1 "Elevator button is lower right side of the door with Braille."
Example 2 "Elevator button is middle of the doors with Braille."
Sample place at the elevator call button image

sub_category: _nav_elevator_equipments_

item description
Purpose Inform users the information about elevator control buttons in the elevator
minor_category [_button_right_|_button_right_braille_], [_button_left_|_button_left_braille_]
Required <minor_category>
Optional <height>, <heading>, <angle>
Not used <name>, <long_description>
Timing On Elevator
Example 1 "Go to the 4th floor. Control buttons with Braille are both side of the exit."
Sample place at the elevator link image

sub_category: _nav_floor_

  • tactile paving attribute of link is converted into this poi type
  • with <name> = "on tactile paving"
item description
Purpose Inform users about the floor information of the link
minor_category [_flag_caution_]
Required <name>
Optional <heading>, <angle>, <height>, <minor_category>
Not used <long_description>
Timing Before Link Navigation if with _flag_caution_
otherwise Link Navigation
Example (Before Link Navigation) ""Watch your step, <poi.name>", proceed 45 meters..., and turn left
Example (Link Navigation) proceed 45 meters... "<poi.name>", and turn left
Sample TBD
Logic if it is on a link, the poi is associated with the link
dLocToNearest < POI_FLOOR_DISTANCE_THRESHOLD && inAngleInitial

sub_category: _nav_info_ (at the begining of a link)

item description
Purpose Inform users about general info
minor_category [_flag_caution_], [_flag_welcome_]
Required <name>
Optional <long_description>, <heading>, <angle>, <height>, <minor_category>
Not used
Timing Before Navigation Start if with _flag_welcome_
Before Link Navigation if with _flag_caution_
otherwise Link Navigation
Example "<poi.name>. <poi.long_description>"
Sample TBD
Logic inAngleInitial && `(dLocToSource < POI_START_INFO_DISTANCE_THRESHOLD

sub_category: _nav_info_ (at the end of a link)

  • the end of tactile paving is described as this type
  • with <name> = "Tactile paving will not be available"
item description
Purpose Inform users about general info
Required <name>
Optional <long_description>, <heading>, <angle>, <height>, <minor_category>
Not used <minor_category>
Timing After Link Navigation
Example 1 turn right, "<poi.name>. <poi.long_description>"
Example 2 turn left, "Tactile paving will not be available"
Sample TBD
Logic inAngleInitial && dLocToTarget < POI_END_INFO_DISTANCE_THRESHOLD

sub_category: _nav_info_ (on a link)

  • the begining of tactile paving is described as thie type for the previous link
    • with <name> = "Tactile paving will be available"
    • at the end of the previous link
    • it will be provided between "Link Target Approaching" and "Link Target Approached"
  • the begining of slope is described as thie type
    • with <name> = "There is a ramp"
  • entrance on a link is described as this type
    • with <name> = <entrance.facility.name> + <entrance.name>
item description
Purpose Inform users about general info
minor_category [_flag_caution_]
Required <name>
Optional <long_description>, <heading>, <angle>, <height>, <minor_category>
Not used
Timing Before Link Navigation if with _flag_caution_
otherwise POI Approaching
Example 1 (_flag_caution_) "Caution, <poi.name>. <poi.long_description>"
Example 2 "<poi.name>. <poi.long_description>"
Sample TBD
Logic inAngleInitial

sub_category: _nav_info_ (at a side of a link)

  • entrance at a side of a link is described as this type
  • with <name> = <entrance.facility.name> + <entrance.name>
  • with _flag_onomastic_ flag
item description
Purpose Inform users about things around route
minor_category [_flag_plural], [_flag_onomastic_]
Required <name>
Optional <long_description>, <heading>, <angle>, <height>, <minor_category>
Not used
Timing POI Approaching
Example "a <poi.name> is on your left side. <poi.long_description>"
Example (_flag_plural_) "<poi.name> are on your right side. <poi.long_description>"
Example (_flag_onomastic_) "<poi.name> is in front of you. <poi.long_description>"
Sample TBD
Logic inAngleAtNearest && dLocToNearest < POI_DISTANCE_MIN_THRESHOLD

sub_category: _nav_obstacle_

item description
Purpose Inform users about obstacles around the route. Announce will be provided before the first obstacle. If the next obstacle is within 5 meters from the last obstacle, annouce will be combined.
Required
Optional <height>
Not used <name>, <long_description>, <minor_category>, <heading>, <angle>
Timing POI Approaching
Example 1 "There is a obstacle in your left side"
Example 2 "There are obstacles in your both side"
Sample place at the location of obstacle

Condition variables

name description
poi target poi
loc location of the target poi
nearest the nearest location from poi location on a link
poi.heading poi's heading
poi.angle poi's angle
_link the link where the system in navigating for
_link.targetLocation the end point of the link
_link.sourceLocation the start point of the link
_link.initialBearingFromSource the initial bearing at the begining of the link
_link.lastBearingForTarget the last bearing at the end of the link (link can be a polyline)
dLocToSource distanceFromTo(loc, _link.sourceLocation)
dLocToTarget distanceFromTo(loc, _link.targetLocation)
dLocToNearest distanceFromTo(loc, nearest)
hLocToTarget bearingFromTo(loc, _link.targetLocation)
hInitial normalizeDegree(_link.initialBearingFromSource - 180);
hLast normalizeDegree(_link.lastBearingForTarget - 180)
inAngleAtTarget the end point of the link is in poi angle
`
inAngleInitial the initial bearing of the ink is in poi angle
`
inAngleLast the last bearing of the link is in poi angle
`

Default condition constants (adjustable)

name value
POI_START_INFO_DISTANCE_THRESHOLD 3
POI_END_INFO_DISTANCE_THRESHOLD 3
POI_DISTANCE_MIN_THRESHOLD 5
POI_TARGET_DISTANCE_THRESHOLD 2
POI_ANNOUNCE_DISTANCE 4
POI_FLOOR_DISTANCE_THRESHOLD 2

POI reading timing

Each navigation instruction is associated with a link.

Timing example
Before Navigation Start at before the begining of the navigation. You can provide welcome message for the route.
Navigation Start at the begining of the navigaion. The overview of the navigation route
"68 meters to somewhere destination name"
Before Link Navigation at before link navigation
Link Navigation provide navigation of a link and the next action at the end of the link at the begining of the link
"proceed 15 meters... and make a slight left turn"
if the link is short, the next action is not provided
"proceed 5 meters"
POI Approaching when user is approaching to the poi
Link Target Approaching when the user is approaching to the end of the link
if the link is short, it is not provided
"approaching"
Link Target Approached when the user is approaced at the end of the link
provide the action user has to take
"turn left"
After Link Navigation at after link target approacehd
Navigaiton End when the user has arrived at the destination
After Navigation End read "<_long_description_>" of the destination facility
On Elevator when the user is face to the elevator door after getting on the elevator
Clone this wiki locally