提供 Locate 微件的逻辑,该微件可将 View 动画化到用户的当前位置。
不安全的来源不支持 (geolocation) 功能。要使用它,请将您的应用程序切换到安全源,例如 HTTPS。请注意,localhost 被认为是“潜在安全的”,可用于在支持 Window.isSecureContext (当前为 Chrome 和 Firefox) 的浏览器中轻松测试。
从 4.2 版本开始,Locate Button 不再显示在不安全的 Web 应用程序中。在 4.1 版本中,这仅适用于 Google Chrome。
let locateWidget = new Locate({
viewModel: { // autocasts as new LocateViewModel()
view: view // attaches the Locate button to the view
},
container: "locateDiv"
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 类的名称。 更多详情 | Accessor | |
Object | 用于设置可选位置参数的对象。 更多详情 | LocateViewModel | |
Boolean | 指示是否将视图导航到地理定位结果的位置和比例。 更多详情 | LocateViewModel | |
GoToOverride | 此函数提供了覆盖 MapView goTo() 或 SceneView goTo() 方法的能力。 更多详情 | LocateViewModel | |
Graphic | 用于在地图上显示用户位置的图形。 更多详情 | LocateViewModel | |
Boolean | 指示是否显示 locate() 方法中的结果图形的弹出窗口。 更多详情 | LocateViewModel | |
Number | 指示在从 track 事件返回位置后,导航到地理定位结果的位置时,在视图上设置的比例。 更多详情 | LocateViewModel | |
String | 微件的当前状态。 更多详情 | LocateViewModel | |
MapView|SceneView | 与微件关联的视图。 更多详情 | LocateViewModel |
属性详细信息
-
起始版本:GeoScene Maps SDK for JavaScript 4.7
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
geolocationOptions Object
-
用于设置可选位置参数的对象。有关使用这些参数的详细信息,请参阅 Geolocation API 规范。
- 默认值:null
示例const track = new Track({ view: view, // Set optional position paramters geolocationOptions: { maximumAge: 0, timeout: 15000, enableHighAccuracy: true } });
-
goToLocationEnabled Boolean
-
指示是否将视图导航到地理定位结果的位置和比例。
- 默认值:true
-
goToOverride GoToOverride起始版本:GeoScene Maps SDK for JavaScript 4.8
-
此函数提供了覆盖 MapView goTo() 或 SceneView goTo() 方法的能力。
示例// 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
-
用于在地图上显示用户位置的图形。
示例const trackWidget = new Track({ // Assign the track widget to a view view: view, // Overwrite the default symbol used for the // graphic placed at the location of the user graphic: new Graphic ({ symbol: { // autocasts as new SimpleMarkerSymbol() type: "simple-marker", size: "12px", color: "blue", // autocasts as new SimpleLineSymbol() outline: { color: "#efefef", width: "1.5px" } } }) });
-
popupEnabled Boolean起始版本:GeoScene Maps SDK for JavaScript 4.19
-
- 默认值:true
- 另请参阅
-
scale Number起始版本:GeoScene Maps SDK for JavaScript 4.7
-
指示在从 track 事件返回位置后,导航到地理定位结果的位置时,在视图上设置的比例。
默认情况下,视图将导航到
2500
(3D) 和4514
(2D) 的比例。要覆盖 2D 中的默认值,请设置scale
属性,并将 snapToZoom 设置为false
。对于 2D 视图,该值应在 effectiveMinScale 和 effectiveMaxScale 之间。- 默认值:null
-
state Stringreadonly
-
微件的当前状态。
可能值:"disabled"|"ready"|"locating"
- 默认值:disabled
-
与微件关联的视图。
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
此函数提供了中断和取消以编程方式获取用户设备位置的过程的功能。 更多详情 | LocateViewModel | ||
Boolean | 在实例上触发事件。 更多详情 | LocateViewModel | |
Boolean | 指示实例上是否存在与提供的事件名称相匹配的事件监听器。 更多详情 | LocateViewModel | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
Promise<Object> | 将视图动画化到用户的位置。 更多详情 | LocateViewModel | |
Object | 在实例上注册事件处理程序。 更多详情 | LocateViewModel | |
移除对象拥有的句柄组。 更多详情 | Accessor |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
cancelLocate()起始版本:GeoScene Maps SDK for JavaScript 4.9
-
此函数提供了中断和取消以编程方式获取用户设备位置的过程的功能。
-
emit(type, event){Boolean}起始版本:GeoScene Maps SDK for JavaScript 4.5
-
在实例上触发事件。仅当创建此类的子类时,才应使用此方法。
参数type String事件的名称。
event Objectoptional事件有效负载。
返回类型 描述 Boolean 如果监听器收到通知,则为 true
-
hasEventListener(type){Boolean}
-
指示实例上是否存在与提供的事件名称相匹配的事件监听器。
参数type String事件的名称。
返回类型 描述 Boolean 如果类支持输入事件,则返回 true。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
将视图动画化到用户的位置。
返回类型 描述 Promise<Object> 解析为与定位事件中定义的事件对象具有相同规范的对象。 示例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}
-
在实例上注册事件处理程序。调用此方法将事件与监听器挂钩。
参数要侦听的事件或者事件数组。
listener Function事件触发时要调用的函数。
返回类型 描述 Object 返回具有 remove()
方法的事件处理程序,可调用该方法来停止侦听事件。属性 类型 描述 remove Function 调用时,从事件中移除侦听器。 示例view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
事件概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
{error: Error} |
在调用 locate() 方法并失败后触发。 更多详情 |
LocateViewModel |