VisioMove SDK (Android)  2.1.22
 All Classes Functions Variables Pages
VgINavigationRefPtr Class Reference

Public Member Functions

 VgINavigationRefPtr ()
 
 VgINavigationRefPtr (VgINavigation pPointer)
 
 VgINavigationRefPtr (VgINavigationRefPtr pRefPtr)
 
VgINavigationRefPtr set (VgINavigation pPointer)
 
VgINavigation __ref__ ()
 
VgINavigation __deref__ ()
 
VgINavigation get ()
 
boolean isValid ()
 
void addListener (VgINavigationListenerRefPtr pListener)
 
void removeListener (VgINavigationListenerRefPtr pListener)
 
VgINavigationInstructionConstRefPtr getInstruction (long pIndex)
 
long getNumInstructions ()
 
void updateCurrentPosition (VgPosition pPosition, double pTime)
 
VgPosition getCurrentPosition ()
 
long getCurrentInstructionIndex ()
 
VgPosition getClosestPositionOnRoute ()
 
double getDistanceFromRoute ()
 
long getCurrentInstructionClosestPositionNextSubIndex ()
 
void setInstructionGeofenceDistance (double pDistanceInMeters)
 
double getInstructionGeofenceDistance ()
 
VgINavigationRequestParameters getRequestParameters ()
 
void ref ()
 
int unref ()
 
int getNbReferences ()
 

Static Public Member Functions

static VgINavigationRefPtr getNull ()
 

Detailed Description

VgINavigation represents a Navigation object

Constructor & Destructor Documentation

VgINavigationRefPtr.VgINavigationRefPtr ( )
VgINavigationRefPtr.VgINavigationRefPtr ( VgINavigation  pPointer)
VgINavigationRefPtr.VgINavigationRefPtr ( VgINavigationRefPtr  pRefPtr)

Member Function Documentation

VgINavigation VgINavigationRefPtr.__deref__ ( )
VgINavigation VgINavigationRefPtr.__ref__ ( )
void VgINavigationRefPtr.addListener ( VgINavigationListenerRefPtr  pListener)

Adds a listener to the navgiation object. If the listener already exists, it does not add it.

Parameters
pListenerThe navigation listener to be added.
VgINavigation VgINavigationRefPtr.get ( )
VgPosition VgINavigationRefPtr.getClosestPositionOnRoute ( )

Calculates the closest position on the route, given the current position ( VgINavigation::getCurrentPosition() ).

Note
you can use VgRoutingModule::VgIRoutingSolver::getRoutingNode and VgRoutingModule::VgIRoutingNode::getPosition to obtain the position on the routing network where there is no navigation.
See also
VgRoutingModule::VgIRoutingSolver::getRoutingNode
VgRoutingModule::VgIRoutingNode::getPosition
Returns
Position on route, if no position has been injected, it will return the first position of the navigation.
long VgINavigationRefPtr.getCurrentInstructionClosestPositionNextSubIndex ( )

Used to determine where on the current instruction the closest position on route is.

// Example how to draw a line while doing a Navigation from the closest position on the route to the end of the current instruction
//
void MyDrawNavigationListener::notifyPositionUpdated (VgEngine::VgConstRefPtr< VgNavigationModule::VgINavigation >
const& pNavigation
const VgEngine::VgPosition &,double)
{
// hide previous line
...
unsigned int lNbInstructions = pNavigation->getNumInstructions();
unsigned int lCurrentInstructnionIndex = pNavigation->getCurrentInstructionIndex();
// This is the next index on the current instruction positions after the closest position.
unsigned int lPositionNextSubIndex = pNavigation->getCurrentInstructionClosestPositionNextSubIndex();
VgEngine::VgConstRefPtr< VgNavigationModule::VgINavigationInstruction > mInstruction;
mInstruction = pNavigation->getInstruction(lCurrentInstructnionIndex);
VgEngine::VgPosition lClosestPosition = pNavigation->getClosestPositionOnRoute();
const std::vector<VgEngine::VgPosition>& lInstructionPositions = mInstruction->getInstructionPositions();
VgEngine::VgRefPtr< Vg3DModule::VgLineDescriptor > lCurrentLD = Vg3DModule::VgLineDescriptor::create();
// Push closest position
lClosestPosition.mZOrAltitude = lLineAltitude;
lCurrentLD->mPositions.push_back(lClosestPosition);
// For each position, flatten height, and add it to line descriptor
std::vector<VgEngine::VgPosition>::const_iterator lPosIter;
for (lPosIter = (lInstructionPositions.begin() + lPositionNextSubIndex);
lPosIter != lInstructionPositions.end();
++lPosIter)
{
VgEngine::VgPosition lPosition = *lPosIter;
lPosition.mZOrAltitude = lLineAltitude;
lCurrentLD->mPositions.push_back(lPosition);
}
// Complete the line descriptor e.g. color and width information
// Instantiate the line descriptor, and show it (set its layer)
}
Version
2.1.3
Returns
the index of the next position in VgINavigationInstruction::getInstructionPositions after the getClosestPositionOnRoute(). Initial value is 1, maximum value is currentInstruction getPositions().size()
long VgINavigationRefPtr.getCurrentInstructionIndex ( )

Gets the index of the active instruction. The value will be the same as the last value given by VgINavigationListener::notifyNewInstruction() .

Returns
The index of the active instruction, initial value is 0.
VgPosition VgINavigationRefPtr.getCurrentPosition ( )

Gets the last position that was notified. This value will be the same as the last value given by VgINavigationListener::notifyPositionUpdated() .

Since
2.1.3 Updated default value when it has not been initialized.
Returns
Last injected position, if no position has been injected, it will return the first position of the navigation.
double VgINavigationRefPtr.getDistanceFromRoute ( )

Gets the distance between current position ( VgINavigation::getCurrentPosition() ) and closest position on route

Since
2.1.3 Updated default value when it has not been initialized.
Returns
Distance in meters from route. If no position has been injected, it will return 0.
VgINavigationInstructionConstRefPtr VgINavigationRefPtr.getInstruction ( long  pIndex)

Gets a navigation instruction

Parameters
pIndexindex of instruction
Returns
Instruction with index pIndex, or NULL if pIndex >+ VgINavigation::getNumInstructions ()
double VgINavigationRefPtr.getInstructionGeofenceDistance ( )

Gets the distance in meters of the threshold when to switch instructions.

Returns
the radius distance in meters. Default value is 2.5 meters
int VgINavigationRefPtr.getNbReferences ( )
static VgINavigationRefPtr VgINavigationRefPtr.getNull ( )
static
long VgINavigationRefPtr.getNumInstructions ( )

Gets the number of navigation instructions

Returns
Number of instructions
VgINavigationRequestParameters VgINavigationRefPtr.getRequestParameters ( )
Version
2.1.8 cleared mCallback to avoid possible circular dependencies.
Returns
the NavigationRequest parameters with which the request was made, without the callback.
boolean VgINavigationRefPtr.isValid ( )
void VgINavigationRefPtr.ref ( )
void VgINavigationRefPtr.removeListener ( VgINavigationListenerRefPtr  pListener)

Removes a listener from the navigation object.

Parameters
pListenerThe navigation listener to be removed.
VgINavigationRefPtr VgINavigationRefPtr.set ( VgINavigation  pPointer)
void VgINavigationRefPtr.setInstructionGeofenceDistance ( double  pDistanceInMeters)

Sets the distance in meters of the threshold when to switch instructions. this number is a function of the accuracy of the position information. If too large, instructions will switch rapidly, if too small, instructions will not change.

Note
This function should be called at the moment the application is notified of the result of a navigation computation.
Parameters
pDistanceInMetersRadius distance in meters. Initial value is 2.5 meters.
int VgINavigationRefPtr.unref ( )
void VgINavigationRefPtr.updateCurrentPosition ( VgPosition  pPosition,
double  pTime 
)

Injects new position. This will trigger a VgINavigationListener::notifyPositionUpdated() event. This method can be used to connect a location provider service to the navigation object.

Remarks
This method must be called within the GL Thread. The SDK is not thread-safe and the resulting call to VgINavigationListener::notifyPositionUpdated() might interact with the engine.
Parameters
pPositionThe new current position. The attribute mZOrAltitude of this parameter will be used to determine the corresponding layer within the map. In order for pPosition to be valid it must fall within the boundary of the map ( VgEngine::VgIDatabaseDatasetDescriptor ) and the mZOrAltitude must fall within a layer range ( VgMapModule::VgIMapModule::getHeightRangeForLayer )
pTimeTime of the position capture. Will be used when notifying any registered navigation listeners, ( VgNavigationModule::VgINavigationListener::notifyPositionUpdated ). If unknown, use 0.

The documentation for this class was generated from the following file:
VisioMove 2.1.22, Visioglobe® 2016