LocateViewModel

AMD: require(["esri/widgets/Locate/LocateViewModel"], (LocateVM) => { /* code goes here */ });
ESM: import LocateViewModel from "@arcgis/core/widgets/Locate/LocateViewModel";
Class: esri/widgets/Locate/LocateViewModel
Inheritance: LocateViewModel Accessor
Since: ArcGIS API for JavaScript 4.0

Provides the logic for the Locate widget, which animates the View to the user's current location.

The (geolocation) functionality is not supported on insecure origins. To use it, switch your application to a secure origin, such as HTTPS. Note that localhost is considered "potentially secure" and can be used for easy testing in browsers that supports Window.isSecureContext (currently Chrome and Firefox).

As of version 4.2, the Locate Button no longer displays in non-secure web apps. At version 4.1 this only applied to Google Chrome.

See also:
Example:
let locateWidget = new Locate({
  viewModel: { // autocasts as new LocateViewModel()
    view: view   // attaches the Locate button to the view
  },
  container: "locateDiv"
});

Constructors

new LocateViewModel(properties)
Parameter:
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
Stringmore details

The name of the class.

more detailsAccessor
Objectmore details

The HTML5 Geolocation Position options for locating.

more detailsLocateViewModel
Booleanmore details

Indicates whether to navigate the view to the position and scale of the geolocated result.

more detailsLocateViewModel
GoToOverridemore details

This function provides the ability to override either the IMapView goTo() or SceneView goTo() methods.

more detailsLocateViewModel
Graphicmore details

The graphic used to show the user's location on the map.

more detailsLocateViewModel
Booleanmore details

Indicates whether to display the Popup of the result graphic from the locate() method.

more detailsLocateViewModel
Numbermore details

The scale to set on the view when navigating to the position of the geolocated result.

more detailsLocateViewModel
Stringmore details

The current state of the widget.

more detailsLocateViewModel
MapView|SceneViewmore details

The view associated with the widget.

more detailsLocateViewModel

Property Details

declaredClass Stringreadonly inherited
Since: ArcGIS API for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

geolocationOptions Object

The HTML5 Geolocation Position options for locating. Refer to Geolocation API Specification for details.

Default Value:{ maximumAge: 0, timeout: 15000, enableHighAccuracy: true }
goToLocationEnabled Boolean

Indicates whether to navigate the view to the position and scale of the geolocated result.

Default Value:true
goToOverride GoToOverride
Since: ArcGIS API for JavaScript 4.8

This function provides the ability to override either the IMapView goTo() or SceneView goTo() methods.

See also:
Example:
// The following snippet uses the Search widget but can be applied to any
// widgets that support the goToOverride property.
search.goToOverride = function(view, goToParams) {
  goToParams.options.duration = updatedDuration;
  return view.goTo(goToParams.target, goToParams.options);
};
graphic Graphic

The graphic used to show the user's location on the map.

Example:
let locateWidget = new Locate({
  viewModel: { // autocasts as new LocateViewModel()
    view: view,  // Assigns the locate widget to a view
    graphic: new Graphic({
      symbol: { type: "simple-marker" }  // Overwrites the default symbol used for the
      // graphic placed at the location of the user when found
    })
  }
});
popupEnabled Boolean
Since: ArcGIS API for JavaScript 4.19

Indicates whether to display the Popup of the result graphic from the locate() method.

Default Value:true
See also:
scale Number
Since: ArcGIS API for JavaScript 4.7

The scale to set on the view when navigating to the position of the geolocated result. If a scale value is not explicitly set, then the view will navigate to a default scale of 2500.

Default Value:null
state Stringreadonly

The current state of the widget.

Possible Values:"disabled"|"ready"|"locating"

Default Value:disabled

The view associated with the widget.

Method Overview

Name Return Type Summary Class
more details

This function provides the ability to interrupt and cancel the process of programmatically obtaining the location of the user's device.

more detailsLocateViewModel
Booleanmore details

Emits an event on the instance.

more detailsLocateViewModel
Booleanmore details

Indicates whether there is an event listener on the instance that matches the provided event name.

more detailsLocateViewModel
Promise<Object>more details

Animates the view to the user's location.

more detailsLocateViewModel
Objectmore details

Registers an event handler on the instance.

more detailsLocateViewModel

Method Details

cancelLocate()
Since: ArcGIS API for JavaScript 4.9

This function provides the ability to interrupt and cancel the process of programmatically obtaining the location of the user's device.

emit(type, event){Boolean}
Since: ArcGIS API for JavaScript 4.5

Emits an event on the instance. This method should only be used when creating subclasses of this class.

Parameters:
type String

The name of the event.

event Object
optional

The event payload.

Returns:
Type Description
Boolean true if a listener was notified
hasEventListener(type){Boolean}

Indicates whether there is an event listener on the instance that matches the provided event name.

Parameter:
type String

The name of the event.

Returns:
Type Description
Boolean Returns true if the class supports the input event.
locate(){Promise<Object>}

Animates the view to the user's location.

Returns:
Type Description
Promise<Object> Resolves to an object with the same specification as the event object defined in the locate event.
Example:
let locateWidget = new Locate({
  viewModel: { // autocasts as new LocateViewModel()
    view: view
  },
  container: "locateDiv"
});

locateWidget.locate().then(function(){
  // Fires after the user's location has been found
});
on(type, listener){Object}

Registers an event handler on the instance. Call this method to hook an event with a listener. See the Events summary table for a list of supported events.

Parameters:

An event or an array of events to listen for.

listener Function

The function to call when the event fires.

Returns:
Type Description
Object Returns an event handler with a remove() method that should be called to stop listening for the event(s).
Property Type Description
remove Function When called, removes the listener from the event.
Example:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});

Event Overview

Name Type Summary Class
{error: Error}
more details

Fires after the locate() method is called and fails.

more details LocateViewModel

Event Details

locate-error

Fires after the locate() method is called and fails.

Property:
error Error

The Error object that occurred while locating.

See also:

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.