Package com.esri.arcgisruntime.location
Class IndoorsLocationDataSource
- java.lang.Object
-
- com.esri.arcgisruntime.location.LocationDataSource
-
- com.esri.arcgisruntime.location.IndoorsLocationDataSource
-
public final class IndoorsLocationDataSource extends LocationDataSource
For the IPS (Indoors Positioning System) we need to collect radio data such as iBeacon BLE (if user is inside) in and GPS (if user is outside). The collected data is forwarded to core, where the main algorithms are implemented, to determine the actual user position.- Since:
- 100.13.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.esri.arcgisruntime.location.LocationDataSource
LocationDataSource.ErrorChangedEvent, LocationDataSource.ErrorChangedListener, LocationDataSource.HeadingChangedEvent, LocationDataSource.HeadingChangedListener, LocationDataSource.Location, LocationDataSource.LocationChangedEvent, LocationDataSource.LocationChangedListener, LocationDataSource.Status, LocationDataSource.StatusChangedEvent, LocationDataSource.StatusChangedListener
-
-
Constructor Summary
Constructors Constructor Description IndoorsLocationDataSource(android.content.Context context, FeatureTable positioningTable, ArcGISFeatureTable pathwaysTable)
Creates a new IndoorsLocationDataSource from the given feature table and context.IndoorsLocationDataSource(android.content.Context context, FeatureTable positioningTable, ArcGISFeatureTable pathwaysTable, java.util.UUID positioningId)
Creates a new IndoorsLocationDataSource from the given feature table, row in the feature table and context.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addWarningChangedListener(WarningChangedListener listener)
Registers the given WarningChangedListener to be called when thewarning
property has changed.java.util.UUID
getPositioningId()
Gets the UUID which identifies a specific row in the feature table that should be used for setting up IPS.FeatureTable
getPositioningTable()
Gets the "ips_positioning" feature table from an IPS-enabled map.ArcGISRuntimeException
getWarning()
Gets an error that describes a problem encountered while starting or running theIndoorsLocationDataSource
.protected void
onStart()
Called fromLocationDataSource.startAsync()
.protected void
onStop()
Called from theLocationDataSource.stopAsync()
orLocationDataSource.stop()
method, subclasses should perform any necessary clean-up in this method; for example, stop streaming the location data, release resources, and so on.boolean
removeWarningChangedListener(WarningChangedListener listener)
Unregisters the given WarningChangedListener that was previously added usingaddWarningChangedListener(WarningChangedListener)
.-
Methods inherited from class com.esri.arcgisruntime.location.LocationDataSource
addErrorChangedListener, addHeadingChangedListener, addLocationChangedListener, addStartedListener, addStatusChangedListener, getError, getStatus, isStarted, onStartCompleted, removeErrorChangedListener, removeHeadingChangedListener, removeLocationChangedListener, removeStartedListener, removeStatusChangedListener, setLastKnownLocation, startAsync, stop, stopAsync, updateHeading, updateLocation
-
-
-
-
Constructor Detail
-
IndoorsLocationDataSource
public IndoorsLocationDataSource(android.content.Context context, FeatureTable positioningTable, ArcGISFeatureTable pathwaysTable)
Creates a new IndoorsLocationDataSource from the given feature table and context. The IndoorsLocationDataSource will try to determine the latest row in the table and use that to set up the Indoors Positioning System (IPS).- Parameters:
context
- the context that the MapView of the associated LocationDisplay is running in.positioningTable
- the "ips_positioning" feature table from an IPS-enabled map.pathwaysTable
- AArcGISFeatureTable
that contains pathways as per the ArcGIS Indoors Information Model.- Throws:
java.lang.IllegalArgumentException
- if context or positioningTable is null- Since:
- 100.13.0
-
IndoorsLocationDataSource
public IndoorsLocationDataSource(android.content.Context context, FeatureTable positioningTable, ArcGISFeatureTable pathwaysTable, java.util.UUID positioningId)
Creates a new IndoorsLocationDataSource from the given feature table, row in the feature table and context.- Parameters:
context
- the context that the MapView of the associated LocationDisplay is running in.positioningTable
- the "ips_positioning" feature table from an IPS-enabled map.pathwaysTable
- AArcGISFeatureTable
that contains pathways as per the ArcGIS Indoors Information Model.positioningId
- an ID which identifies a specific row in the feature table that should be used for setting up IPS.- Throws:
java.lang.IllegalArgumentException
- if context or positioningTable is null- Since:
- 100.13.0
-
-
Method Detail
-
getPositioningId
public java.util.UUID getPositioningId()
Gets the UUID which identifies a specific row in the feature table that should be used for setting up IPS.- Returns:
- UUID which identifies a specific row in the feature table that should be used for setting up IPS.
- Since:
- 100.13.0
-
getPositioningTable
public FeatureTable getPositioningTable()
Gets the "ips_positioning" feature table from an IPS-enabled map.- Returns:
- the "ips_positioning" feature table from an IPS-enabled map.
- Since:
- 100.13.0
-
onStart
protected void onStart()
Description copied from class:LocationDataSource
Called fromLocationDataSource.startAsync()
. Subclasses should implement this method to prepare for starting the data source. TheLocationDataSource.onStartCompleted(Throwable)
method must be called by the subclass once the location data source has finished its starting process.- Specified by:
onStart
in classLocationDataSource
-
onStop
protected void onStop()
Description copied from class:LocationDataSource
Called from theLocationDataSource.stopAsync()
orLocationDataSource.stop()
method, subclasses should perform any necessary clean-up in this method; for example, stop streaming the location data, release resources, and so on.- Specified by:
onStop
in classLocationDataSource
-
getWarning
public ArcGISRuntimeException getWarning()
Gets an error that describes a problem encountered while starting or running theIndoorsLocationDataSource
. Holds the last warning received from core.- Returns:
- an error that describes a problem encountered while starting or running the
IndoorsLocationDataSource
, or null if none - Since:
- 100.14.0
- See Also:
for detailed IndoorsLocationDataSource related warning message
-
addWarningChangedListener
public void addWarningChangedListener(WarningChangedListener listener)
Registers the given WarningChangedListener to be called when thewarning
property has changed.Adding this listener on the UI thread will cause it to be invoked on the UI thread, otherwise it is not guaranteed on which thread the listener is invoked.
- Parameters:
listener
- the listener to register- Throws:
java.lang.IllegalArgumentException
- if the WarningChangedListener is null- Since:
- 100.14.0
- See Also:
removeWarningChangedListener(WarningChangedListener)
-
removeWarningChangedListener
public boolean removeWarningChangedListener(WarningChangedListener listener)
Unregisters the given WarningChangedListener that was previously added usingaddWarningChangedListener(WarningChangedListener)
.- Parameters:
listener
- the listener to unregister- Returns:
- true if the listener was successfully removed; false otherwise
- Since:
- 100.14.0
-
-