LocateViewModel

AMD: require(["geoscene/widgets/Locate/LocateViewModel"], (LocateVM) => { /* code goes here */ });
ESM: import LocateVM from "@geoscene/core/widgets/Locate/LocateViewModel";
类: geoscene/widgets/Locate/LocateViewModel
继承于:LocateViewModel Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.0

提供 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"
});

构造函数

new LocateViewModel(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
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

属性详细信息

declaredClass Stringreadonly inherited
起始版本: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

指示是否显示 locate() 方法中的结果图形的弹出窗口

默认值:true
另请参阅
scale Number
起始版本:GeoScene Maps SDK for JavaScript 4.7

指示在从 track 事件返回位置后,导航到地理定位结果的位置时,在视图上设置的比例。

默认情况下,视图将导航到 2500 (3D) 和 4514 (2D) 的比例。要覆盖 2D 中的默认值,请设置 scale 属性,并将 snapToZoom 设置为 false。对于 2D 视图,该值应在 effectiveMinScaleeffectiveMaxScale 之间。

默认值: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 Object
optional

事件有效负载。

返回
类型 描述
Boolean 如果监听器收到通知,则为true
hasEventListener(type){Boolean}

指示实例上是否存在与提供的事件名称相匹配的事件监听器。

参数
type String

事件的名称。

返回
类型 描述
Boolean 如果类支持输入事件,则返回 true。
hasHandles(groupKey){Boolean}inherited
起始版本: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");
}
locate(){Promise<object>}

将视图动画化到用户的位置。

返回
类型 描述
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

事件详细说明

locate-error

在调用 locate() 方法并失败后触发。

属性
error Error

定位时出现的错误对象。

另请参阅

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息