RouteLayer 是用于可视化和解决路线的图层。已解决的路线包括转弯路线,可以作为门户项目或 web 地图的一部分从 GeoScene Online 或 Enterprise 中存储和检索。
RouteLayer 包含两个或多个停靠点,以及可选的点、面和折线障碍。可从 directionLines、directionPoints 和 routeInfo 属性访问已求解路线的结果。结果包括总行程时间、距离和转弯方向。
已知限制
目前,3D SceneViews 不支持 RouteLayer。
// A minimum of two stops is required for routing.
const stops = [
new Stop({ geometry: { x: -117.1825, y: 34.054722 }}),
new Stop({ geometry: { x: -116.545278, y: 33.830278 }})
];
// Create route layer and assign the stops. Only solved routelayers will be rendered.
const routeLayer = new RouteLayer({
stops
});
// Create a view and add the routelayer to the view's map.
const view = new MapView({
container: "viewDiv",
map: new Map({
basemap: "geoscene-blue",
layers: [ routeLayer ]
})
});
// Wait for the view to load since we'll be zooming to the extent of the zoomed solution.
view.when().then(async () => {
// Solve the route using routelayer stops and barries and additional properties from the parsed RouteParameters
// object. Use the RouteParameters to provide the apiKey and other setting like directions language and travel
// mode.
const results = await routeLayer.solve();
// Use the returned result to update the RouteLayer. This method will overwrite the stops, barriers, directions and
// routeInfo properties.
routeLayer.update(results);
// Zoom to the extent of the solve route.
view.goTo(routeLayer.routeInfo.geometry);
});
构造函数
属性概览
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 混合模式用于将图层混合在一起以在图层中创建有趣的效果,甚至可以生成看起来像新图层的效果。 | 更多信息 | RouteLayer | |
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
Collection<DirectionLine> | 更多信息 DirectionLine 的集合,表示已解决路线的 directionPoints 之间的线性路径。 | 更多信息 | RouteLayer | |
Collection<DirectionPoint> | 更多信息 DirectionPoint 的集合,表示沿已解决路线的转弯方向。 | 更多信息 | RouteLayer | |
Effect | 更多信息 Effect 提供了可以在图层上执行的各种滤镜功能,以实现类似于图像滤镜工作方式的不同视觉效果。 | 更多信息 | RouteLayer | |
Extent | 更多信息 图层的完整范围。 | 更多信息 | Layer | |
String | 更多信息 分配给图层的唯一 ID。 | 更多信息 | Layer | |
String | 更多信息 指示层应如何在 LayerList 微件中显示。 | 更多信息 | Layer | |
Boolean | 更多信息 指示图层的资源是否已加载。 | 更多信息 | Layer | |
Error | 更多信息 如果加载时发生错误,则返回 Error 对象。 | 更多信息 | Layer | |
String | 更多信息 表示 load 操作的状态。 | 更多信息 | Layer | |
Object[] | 更多信息 加载时发生的警告列表。 | 更多信息 | Layer | |
Number | 更多信息 图层在视图中可见的最大比例(最大放大)。 | 更多信息 | RouteLayer | |
Number | 更多信息 图层在视图中可见的最小比例(最大缩小)。 | 更多信息 | RouteLayer | |
Number | 更多信息 图层的不透明度。 | 更多信息 | Layer | |
Collection<PointBarrier> | 更多信息 PointBarrier 的集合用于防止通过街道网络进行导航。 | 更多信息 | RouteLayer | |
Collection<PolygonBarrier> | 更多信息 PolygonBarrier 的集合用于防止通过街道网络进行导航。 | 更多信息 | RouteLayer | |
Collection<PolylineBarrier> | 更多信息 PolylineBarrier 的集合用于防止通过街道网络进行导航。 | 更多信息 | RouteLayer | |
PortalItem | 更多信息 从中加载图层的门户项目。 | 更多信息 | RouteLayer | |
RouteInfo | 更多信息 此属性包含已求解路线的几何形状和其他路线信息,例如总时间和距离。 | 更多信息 | RouteLayer | |
Collection<Stop> | 更多信息 Stop 的集合定义了路线的起点、终点、航路点或中断点。 | 更多信息 | RouteLayer | |
String | 更多信息 | 更多信息 | RouteLayer | |
String | 更多信息 For RouteLayer 类型始终为 "route"。 | 更多信息 | RouteLayer | |
String | 更多信息 Route 服务的 REST 端点的 URL。 | 更多信息 | RouteLayer | |
Boolean | 更多信息 指示图层是否在 View 中可见。 | 更多信息 | Layer |
属性详情
-
blendMode String
-
混合模式用于将图层混合在一起以在图层中创建有趣的效果,甚至可以生成看起来像新图层的效果。与使用透明度的方法可能会导致顶层褪色不同,混合模式可以通过将图层与下面的图层混合来创建各种非常生动和有趣的结果。
混合图层时,
top layer
是应用了混合模式的图层。顶层下面的所有层都是背景层
。默认的混合模式是normal
,其中顶层简单地显示在背景层之上。虽然这种默认行为是完全可以接受的,但在图层上使用混合模式为生成创意地图开辟了无限可能的世界。GroupLayer 中的图层与地图的其余部分隔离地混合在一起。
在以下屏幕截图中,复古阴影浮雕图层显示在萤光世界图像图层上。
color
混合模式应用于复古阴影浮雕,结果看起来像一个新图层。已知限制
- 3D SceneViews 不支持 blendMode。
- Legend 不支持 blendMode。
- 请参阅 print 了解已知的打印限制。
以下因素会影响混合结果:
- 所有层的顺序
- 图层不透明度
- 图层中要素的不透明度
- 图层的可见性
- 默认情况下,地图的最底层绘制在透明背景上。您可以更改 MapView 的背景 颜色。
混合模式
说明 normal 顶层显示在背景层之上。顶层的数据在它们重叠的地方阻塞了背景层的数据。 average 取顶层和背景层的数学平均值。 average
混合模式的结果通常类似于将图层的不透明度设置为 50% 的效果。淡化混合模式:
以下混合模式创建比所有图层更轻的结果。在淡化混合模式下,顶层中的纯黑色变得透明,从而使背景层能够透出。顶层的白色将保持不变。任何比纯黑色更亮的颜色都会在不同程度上使顶层的颜色变亮,直至纯白色。
在使顶层的深色变亮或从结果中去除黑色时,变亮混合模式很有用。
plus
、lighten
和screen
模式可用于使深色背景上褪色或深色的图层变亮。混合模式 说明 lighten 比较顶层和背景层并保留较浅的颜色。如果顶层中的颜色比背景层中的重叠颜色更暗,则顶层中的颜色将变为透明,从而使背景层完全显示出来。可以认为是 darken
混合模式的反面。lighter 顶层和背景层的颜色乘以它们的 alpha(层 opacity 和层的 数据不透明度)。然后将生成的颜色加在一起。所有重叠的中间颜色在顶层变亮。图层和图层数据的不透明度会影响混合结果。 plus 顶层和背景层的颜色相加。所有重叠的中间颜色在顶层变亮。此模式也称为 add
或linear-dodge
。screen 将顶部和背景层中的反转颜色相乘,然后再次反转颜色。生成的颜色将比原始颜色更亮,对比度更小。根据顶层的亮度值,屏幕可以产生许多不同级别的亮度。可以认为是 multiply
模式的对立面。color-dodge 将背景层中的颜色除以倒置的顶层。这会根据顶层的值使背景层变亮。顶层越亮,其颜色对背景层的影响越大。 降低顶层和背景层之间的对比度,导致饱和的中间色调和高光溢出。 变暗混合模式:
以下混合模式会产生比所有图层更暗的结果。在变暗混合模式下,顶层中的纯白色将变得透明,从而使背景层能够透出。顶层的黑色将保持不变。任何比纯白色深的颜色都会在不同程度上使顶层变暗,直至纯黑色。
multiply
混合模式通常用于突出阴影、显示对比度或突出地图的某个方面。例如,当您希望通过地形图层显示高程时,可以在显示在山体阴影上的地形图上使用multiply
混合模式。multiply
和darken
模式可用于将底图的深色标签显示在顶层。color-burn
模式适用于彩色顶层和背景层,因为它增加了中间色调的饱和度。它通过使顶层和底层重叠区域中的像素更接近顶层颜色来增加对比度。当您想要比multiply
或darken
对比度更高的效果时,请使用此混合模式。以下屏幕截图显示了
multiply
混合模式如何用于创建显示边界和海拔的世界物理地图。混合模式 说明 darken 强调重叠图层的最暗部分。如果顶层中的颜色比背景层中的重叠颜色浅,则它们会变得透明,从而使背景层完全显示出来。 multiply 通过叠加顶层和背景层的颜色来强调重叠层的最暗部分。来自顶部和背景层的中间颜色更均匀地混合在一起。 color-burn 加强所有图层中的暗区。它通过将重叠区域中的颜色向顶部颜色着色来增加顶部和背景层之间的对比度。为此,它反转背景层的颜色,将结果除以顶层的颜色,然后反转结果。 对比度混合模式:
以下混合模式通过使用变亮或变暗混合模式来创建混合,通过使较亮区域变亮和使顶层中较暗区域变暗来创建对比度。对比度混合模式将使浅于 50% 灰色 ([128,128,128]) 的颜色变亮,并使深于 50% 灰色的颜色变暗。50% 的灰色在顶层是透明的。根据混合在一起的顶层和背景层的颜色,每种模式都可以创建各种结果。
overlay
混合模式根据背景图层中颜色的亮度进行计算,而所有其他对比度混合模式根据顶层的亮度进行计算。 其中一些模式旨在模拟光线穿过顶层的效果,有效地投射到其下方的层上。对比度混合模式可用于增加对比度和饱和度,以获得更鲜艳的色彩并为您的图层提供冲击力。例如,您可以复制一个图层并在顶层设置
overlay
混合模式以增加图层的对比度和色调。您还可以在深色图像图层上添加带有白色填充符号的多边形图层,并应用soft-light
混合模式来增加图像图层的亮度。以下屏幕截图显示了
overlay
混合模式对 GraphicsLayer 的影响。 左图显示了缓冲区图形图层何时具有normal
混合模式。如您所见,缓冲区多边形的灰色挡住了相交的人口普查区域。右图显示了将overlay
混合模式应用于缓冲区图形图层的情况。overlay
混合模式会根据背景图层的颜色使灰色缓冲区多边形变暗或变亮,而人口普查区域图层正在发光。正常混合模式 叠加混合模式 混合模式 说明 overlay 使用 multiply
和screen
模式的组合来使顶层中的颜色变暗和变亮,而背景层始终透出。结果是背景层中较暗的颜色值会增强顶层,而背景层中较浅的颜色会冲掉顶层中的重叠区域。soft-light 将半强度 screen
模式应用于较亮的区域,将半强度multiply
模式应用于使顶层区域变暗。您可以将soft-light
视为overlay
模式的更柔和版本。hard-light 根据顶层的颜色,将颜色相乘或筛选。 效果类似于在顶层照射刺眼的聚光灯。 vivid-light 通过增加或减少对比度来使用 color-burn
或color-dodge
的组合,具体取决于顶层中的颜色。组件混合模式:
以下混合模式使用原色组件,即色调、饱和度和亮度来混合顶部和背景层。您可以在任何图层上添加带有简单渲染器的要素图层并设置
hue
、saturation
、color
或luminosity
此图层上的混合模式。使用这种技术,您可以创建一个全新的地图。以下屏幕截图显示了 一个地形图层与一个世界山体阴影图层,具有
luminosity
混合模式。结果是一个外观截然不同的地图,它保留了地形层的亮度,同时适应了山体阴影层的色调和饱和度。混合模式 说明 hue 使用顶层的色调和背景层的亮度和饱和度创建效果。 saturation 使用顶层的饱和度和背景层的色相和亮度创建效果。 背景层中没有饱和度的 50% 灰色不会产生任何变化。 luminosity 使用顶层的亮度和背景层的色调和饱和度创建效果。可以认为是 color
混合模式的对立面。color 使用顶层的色调和饱和度以及背景层的亮度创建效果。可以认为是 luminosity
混合模式的对立面。复合混合模式:
以下混合模式可用于遮盖顶部、背景或两个图层的内容。
Destination
模式用于用背景层的数据屏蔽顶层的数据。Source
模式用于将背景层的数据与顶层的数据进行掩码。
destination-in
混合模式可用于显示重点区域,例如地震、动物迁徙或点源污染,通过显示底层地图,提供现象的鸟瞰图。查看 多重混合 和 groupLayer 混合 示例以查看实际的复合混合模式。以下屏幕截图按照它们在视图中的绘制顺序在左侧单独显示了要素和影像图层。包含土地覆盖分类栅格的影像图层。要素图层包含 2007 年县农作物数据。右图显示了图层混合的结果,其中在图像图层上设置了
destination-in
blendMode。如您所见,效果与原始图层有很大不同。混合结果仅显示种植作物的区域(图像和要素图层重叠的区域)。混合模式 说明 destination-over 目标/背景层覆盖顶层。顶层绘制在目标层下方。无论背景层是透明的还是没有数据的,您都会看到顶层。 destination-atop 目标/背景层仅在与顶层重叠的地方绘制。顶层绘制在背景层之下。无论背景层是透明的还是没有数据的,您都会看到顶层。 destination-in 目标/背景层仅在与顶层重叠的地方绘制。其他一切都变得透明。 destination-out 目标/背景层绘制在不与顶层重叠的地方。其他一切都变得透明。 source-atop 源/顶层仅在与背景层重叠的地方绘制。您将看到背景层从源层透明或没有数据的地方窥视。 source-in 源/顶层仅在与背景层重叠的地方绘制。其他一切都变得透明。 source-out 源/顶层在不与背景层重叠的地方绘制。其他一切都变得透明。 xor 顶部和背景层在它们重叠的地方是透明的。两个图层在其他地方都是正常绘制的。 反转混合模式:
以下混合模式根据背景层的颜色反转或取消颜色。这些混合模式寻找顶层和背景层之间的变化。例如,您可以在森林覆盖的两个图像层上使用
difference
或exclusion
混合模式,以可视化森林覆盖从一年到另一年的变化。invert
混合模式可用于将任何浅色底图转换为深色底图,以适应在弱光条件下工作的人。以下屏幕截图显示了如何使用简单的渲染器在要素图层上设置invert
混合模式,从而将 世界地形底图 立即转换为深色主题底图。混合模式 说明 difference 从较浅的颜色中减去较深的重叠颜色。当两个具有相同值的像素相减时,结果为黑色。与黑色混合不会产生任何变化。与白色混合会反转颜色。这种混合模式对于对齐具有相似内容的图层很有用。 exclusion 类似于 difference
混合模式,不同之处在于生成的图像整体更亮。颜色值较浅的重叠区域会变亮,而颜色值较深的重叠区域会变得透明。minus 从背景层的颜色中减去顶层的颜色,使混合结果更暗。在负值的情况下,显示黑色。 invert 在顶部和背景层重叠的地方反转背景颜色。反转混合模式反转图层,类似于摄影底片。 reflect 这种混合模式创建的效果就像您在图层中添加了闪亮的对象或光区域一样。背景层中的黑色像素被忽略,就好像它们是透明的一样。 可能的值:"average"|"color-burn"|"color-dodge"|"color"|"darken"|"destination-atop"|"destination-in"|"destination-out"|"destination-over"|"difference"|"exclusion"|"hard-light"|"hue"|"invert"|"lighten"|"lighter"|"luminosity"|"minus"|"multiply"|"normal"|"overlay"|"plus"|"reflect"|"saturation"|"screen"|"soft-light"|"source-atop"|"source-in"|"source-out"|"vivid-light"|"xor"
- 默认值:normal
- 也可查阅:
-
类的名称。声明的类名格式为
geoscene.folder.className
。
-
directionLines Collection<DirectionLine>readonly
-
DirectionLine 的集合,表示已解决路线的 directionPoints 之间的线性路径。
-
directionPoints Collection<DirectionPoint>readonly
-
DirectionPoint 的集合,表示沿已解决路线的转弯方向。
-
fect 提供了可以在图层上执行的各种滤镜功能,以实现类似于图像滤镜工作方式的不同视觉效果。这种强大的功能允许您将 css filter-like 函数应用于图层以创建自定义视觉效果,以提高地图的制图质量。这是通过将所需效果作为字符串或对象数组应用到图层的
effect
属性以设置与比例相关的效果来完成的。注意
- 如果需要应用满足或不符合指定 filter的功能的不同效果,请设置 featureEffect 属性。
- 如果以下四个属性全部应用,那么它们将按以下顺序应用:
featureEffect
、effect、不透明度和混合模式。
已知限制
- 3D SceneViews 不支持该效果。
- 该效果不能应用于具有 热图渲染器的图层。
- 启用了
cluster
类型的 featureReduction 的图层不支持该效果。 - 请参阅 print 了解已知的打印限制。
- 默认值:null
- 也可查阅:
示例://下面的效果将应用于所有尺度的图层 //先应用亮度,然后是色调旋转,然后是对比度 //改变效果的顺序会改变最终结果 layer.effect = "brightness(5) hue-rotate(270deg) contrast(200%)";
// 在图层上设置一个比例相关的绽放效果 layer.effect = [ { scale: 36978595, value: "drop-shadow(3px, 3px, 4px)" }, { scale: 18489297, value: "drop-shadow(2px, 2px, 3px)" }, { scale: 4622324, value: "drop-shadow(1px, 1px, 2px)" } ];
-
图层的完整范围。默认情况下,这是全局范围的。此属性可用于设置视图的范围以匹配图层的范围,以便其要素看起来填充视图。请参阅下面的示例片段。
示例:// 图层加载后,将视图的范围设置为图层的全范围 layer.when(function(){ view.extent = layer.fullExtent; });
-
分配给图层的唯一 ID。 如果没有开发者设置,则在图层加载时自动生成。
-
指示层应如何在 LayerList 微件中显示。下面列出了可能的值。
值 说明 show 该图层在内容列表中可见。 hide 该图层隐藏在内容列表中。 hide-children 如果图层是 GroupLayer、BuildingSceneLayer、KMLLayer、MapImageLayer、TileLayer 或 WMSLayer,从目录中隐藏子层。 可能的值:"show"|"hide"|"hide-children"
- 默认值:show
-
指示图层的资源是否已加载。当
true
时,可以访问对象的所有属性。- 默认值:false
-
如果加载时发生错误,则返回 Error 对象。
- 默认值:null
-
表示 load 操作的状态。
值 说明 not-loaded 对象的资源尚未加载。 loading 对象的资源当前正在加载。 loaded 对象的资源已加载且没有错误。 failed 无法加载对象的资源。有关详细信息,请参阅 loadError。 可能的值:"not-loaded"|"loading"|"failed"|"loaded"
- 默认值:not-loaded
-
加载时发生的警告列表。
-
maxScale Number
-
图层在视图中可见的最大比例(最大放大)。如果地图放大超过此比例,则图层将不可见。
0
的值表示图层没有最大比例。maxScale 值应始终小于 minScale 值,并且大于或等于服务规范。- 默认值:0
示例:// 当视图放大到超过 1:1,000 的比例时,图层将不可见 layer.maxScale = 1000;
// 图层的可见性不限于最大比例。 layer.maxScale = 0;
-
minScale Number
-
图层在视图中可见的最小比例(最大缩小)。如果地图缩小到超出此比例,则图层将不可见。
0
的值表示图层没有最小比例。minScale 值应始终大于 maxScale 值,并且小于或等于服务规范。- 默认值:0
示例:// 当视图缩小到超过 1:3,000,000 的比例时,图层将不可见 layer.minScale = 3000000;
// 图层的可见性不限于最小比例。 layer.minScale = 0;
-
图层的不透明度。该值的范围在
1
和0
之间,其中0
是 100% 透明的,而1
是完全不透明的。- 默认值:1
示例:// 使图层 50% 透明 layer.opacity = 0.5;
-
pointBarriers Collection<PointBarrier>autocast
-
PointBarrier 的集合用于防止通过街道网络进行导航。
-
polygonBarriers Collection<PolygonBarrier>autocast
-
PolygonBarrier 的集合用于防止通过街道网络进行导航。
-
polylineBarriers Collection<PolylineBarrier>autocast
-
PolylineBarrier 的集合用于防止通过街道网络进行导航。
-
portalItem PortalItem
-
从中加载图层的门户项目。如果门户项目引用要素服务或场景服务,则可以使用 layerId 属性指定要加载的单个图层。
从版本 4.17 开始,可以从 GeoScene Online 和 GeoScene Enterprise 中托管的要素服务项目加载表。这仅适用于要素图层,如果 FeatureLayer.isTable 返回
true
将成功加载。示例://虽然这个例子使用了FeatureLayer,但同样的模式也可以 // 用于可能从 portalItem ids 加载的其他层。 const lyr = new FeatureLayer({ portalItem: { // 转换成 new PortalItem() id: "caa9bd9da1f4487cb4989824053bb847" } //返回服务中的第一层 });
// 虽然此示例使用 FeatureLayer,但同样的模式也可以 // 用于 SceneLayers。 const lyr = new FeatureLayer({ portalItem: { // 转换成 new PortalItem() id: "8d26f04f31f642b6828b7023b84c2188" }, //加载给定要素服务中的第三项 layerId: 2 });
// 这个片段加载一个托管在 GeoScene Online 中的表格。 const table = new FeatureLayer({ portalItem: { id: "123f4410054b43d7a0bacc1533ceb8dc" } }); // 将表格添加到地图之前,必须先加载并确认它是正确的类型。 table.load().then(function() { if (table.isTable) { map.table.add(table); } });
-
routeInfo RouteInforeadonly
-
此属性包含已求解路线的几何形状和其他路线信息,例如总时间和距离。
-
stops Collection<Stop>autocast
-
Stop 的集合定义了路线的起点、终点、航路点或中断点。
示例:// Define a route between Cancun Airport and Playa del Carmen with a break at Chichén Itzá. const routeLayer = new RouteLayer({ stops: [ { locationType: "stop", geometry: { x: -86.9074392, y: 21.0847238 } }, // Cancun Airport { locationType: "break", geometry: { x: -88.1331506, y: 20.6354437 } }, // Chichén Itzá { locationType: "stop", geometry: { x: -87.1067159, y: 20.6538687 } } // Playa del Carmen ] });
-
title String
-
-
type Stringreadonly
-
对于 RouteLayer,类型始终为 "route"。
-
url String
-
Route 服务的 REST 端点的 URL。
默认情况下,该层将使用全局路由服务(参见 config.routeServiceUrl)。
示例:// Solve routes using the route service advertised on the portal const portal = Portal.getDefault(); await portal.load(); const routeLayer = new RouteLayer({ url: portal.helperServices.route.url });
// Solve routes using a defined route service const routeLayer = new RouteLayer({ url: "https://route-api.geoscene.cn/arcgis/rest/services/World/Route/NAServer/Route_World" });
-
- 默认的值:true
示例:// 该层在视图中不可见 layer.visible = false;
方法概览
名称 | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
更多信息 如果 load() 操作已经在进行中,则取消该操作。 | 更多信息 | Layer | ||
Promise<LayerView> | 更多信息 由视图调用,例如 MapView 和 SceneView,当图层已添加到 Map.layers 集合中,并且必须为其创建图层视图。 | 更多信息 | Layer | |
更多信息 销毁层和任何关联资源(包括其 portalItem,如果它是层上的属性)。 | 更多信息 | Layer | ||
Boolean | 更多信息 在实例上发出事件。 | 更多信息 | Layer | |
Promise<Object> | 更多信息 当图层可用时获取图层的自定义属性数据。 | 更多信息 | Layer | |
Boolean | 更多信息 指示实例上是否存在与提供的事件名称匹配的事件侦听器。 | 更多信息 | Layer | |
Boolean | 更多信息
| 更多信息 | Layer | |
Boolean | 更多信息
| 更多信息 | Layer | |
Boolean | 更多信息
| 更多信息 | Layer | |
Promise | 更多信息 加载此类引用的资源。 | 更多信息 | Layer | |
Object | 更多信息 在实例上注册事件处理程序。 | 更多信息 | Layer | |
Promise<PortalItem> | 更多信息 使用此 RouteLayer 中的信息更新当前分配的 门户项目。 | 更多信息 | RouteLayer | |
Promise<PortalItem> | 更多信息 将路径层保存到新的门户项目。 | 更多信息 | RouteLayer | |
Promise<RouteLayerSolveResult> | 更多信息 此方法将使用 routeServiceUrl 引用的路由服务和网络对象 pointBarriers、polylineBarriers、polygonBarriers 和 stops。 | 更多信息 | RouteLayer | |
更多信息 使用已求解路径图层的结果更新图层。 | 更多信息 | RouteLayer | ||
Promise | 更多信息 一旦创建了类的实例,就可以利用 | 更多信息 | Layer |
方法详情
-
由视图调用,例如 MapView 和 SceneView,当图层已添加到 Map.layers 集合中,并且必须为其创建图层视图。此方法在内部使用,没有直接调用的用例。
参数:view *父视图。
options Objectoptional指定附加选项的对象。有关此对象所需的属性,请参阅下面的对象规格表。
规范:signal AbortSignaloptional中止层视图创建的信号。
返回类型 说明 Promise<LayerView> 使用 LayerView 实例解决。 - 也可查阅:
-
destroy()inherited
-
销毁层和任何关联资源(包括其 portalItem,如果它是层上的属性)。该层一旦被破坏就不能再使用了。
被破坏的图层将从其父对象中删除,例如 Map、WebMap、WebScene、Basemap、Ground 或 GroupLayer。
-
在实例上发出事件。此方法仅应在创建此类的子类时使用。
参数:type String事件的名称。
event Objectoptional事件有效负载。
返回:类型 说明 Boolean true
如果监听器被通知
-
isFulfilled()
可用于验证创建类的实例是否已完成(已解决或已拒绝)。如果满足,将返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已完成(已解决或已拒绝)。
-
isRejected()
可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已被拒绝。
-
isResolved()
可用于验证创建类的实例是否已解决。如果解析成功,将返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已解决。
-
加载此类引用的资源。此方法自动为 View 及其在 Map 中引用的所有资源执行 如果视图是用地图实例构造的。
此方法必须由开发人员在访问不会在 View 中加载的资源时调用。
load()
方法仅在第一次调用时触发加载资源。随后的调用返回相同的promise。可以提供一个
signal
来停止对Loadable
实例加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。参数:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 了解有关如何构建可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise 当资源加载时解决。
-
在实例上注册事件处理程序。调用此方法以将事件与侦听器挂钩。
参数:事件或要监听的事件数组。
listener Function事件触发时调用的函数。
返回:类型 说明 Object 返回带有 remove()
方法的事件处理程序,应该调用该方法来停止侦听事件。属性 类型 说明 remove Function 调用时,从事件中删除侦听器。 示例:view.on("click", function(event){ // event是事件触发后返回的事件句柄。 console.log(event.mapPoint); });
-
save(){Promise<PortalItem>}
-
使用此 RouteLayer 中的信息更新当前分配的门户项目。
返回:类型 说明 Promise<PortalItem> 已保存的门户项目。 - 也可查看:
示例:// Create a route layer from an existing route portal item const routeLayer = await Layer.fromPortalItem({ portalItem: { id: "3828dfec3a0749a1b1aff9e2fa53157c" } }); // Add the route layer to a map map.add(routeLayer); // Wait for both the view and route layer to load await view.whenLayerView(routeLayer); // Zoom to the extent of the route layer await view.goTo(routeLayer.fullExtent); // Update the route portal item on mouse click view.on("click", async (event) => { // Reset the route layer's stops with the mouse click location being a waypoint routeLayer.stops = [ { geometry: { x: -86.9074392, y: 21.0847238 } }, // Cancun Airport { geometry: event.mapPoint }, // Mouse click location { geometry: { x: -88.1331506, y: 20.6354437 } } // Chichén Itzá ]; // Solve the route const result = await routeLayer.solve(); // Use the results of the solve to update the route layer routeLayer.update(result); // Refresh the route portal-item using the route layer await routeLayer.save(); });
-
saveAs(portalItem, options){Promise<PortalItem>}
-
将路径层保存到新的门户项目。如果保存成功完成,新的门户项目将分配给 portalItem 属性。
如果您想在不更改所有权的情况下更新现有门户项目,请使用 save()。
参数:portalItem Promise<PortalItem>图层将保存到的新门户项目。
options Objectoptional保存选项。目前只能设置一个属性,即
folder
。规格:folder PortalFolderoptional保存项目的文件夹。
返回:类型 说明 Promise<PortalItem> 已保存的门户项目。 - 也可查看:
示例:// Create a route between Cancun Airport and Chichén Itzá // Save the route to AGOL as a new route portal item const routeLayer = new RouteLayer({ stops: [ { geometry: { x: -86.9074392, y: 21.0847238 } }, // Cancun Airport { geometry: { x: -88.1331506, y: 20.6354437 } } // Chichén Itzá ] }); const webMap = new WebMap({ basemap: "geoscene-blue", layers: [ routeLayer ] }); const view = new MapView({ container: "viewDiv", map: webMap }); await view.when(); const result = await routeLayer.solve(); routeLayer.update(result); const extent = routeLayer.routeInfo.geometry.extent.clone().expand(1.5); await view.goTo(extent); await routeLayer.saveAs({ title: "Route from Cancun Airport to Chichén Itzá" });
-
solve(routeParameters, requestOptions){Promise<RouteLayerSolveResult>}
-
此方法将使用 routeServiceUrl 引用的路由服务和网络对象 pointBarriers、polylineBarriers、polygonBarriers 和 stops。
传递对 RouteParameters 的引用以指定或覆盖路线设置,例如 travelMode 或使用的停靠点。
参数:routeParameters RouteParameters以下属性是预设的,不能被覆盖:
属性 值 directionsOutputType "featuresets" ignoreInvalidLocations true
preserveFirstStop true
preserveLastStop true
returnBarriers true
returnDirections true
returnPolygonBarriers true
returnPolylineBarriers true
returnRoutes true
returnStops true
以下属性也将自动设置,但可以被覆盖:
属性 默认值 pointBarriers 与 pointBarriers 相同 polylineBarriers 与 polylineBarriers 相同 polygonBarriers 与 polygonBarriers 相同 startTime new Date()
stops 与 stops 相同 requestOptions Objectoptional用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。
返回:类型 说明 Promise<RouteLayerSolveResult> 解析后,返回 RouteLayerSolveResult。 - 也可查阅:
示例:// Solve and display a route between Cancun Airport and Chichén Itzá. // Create a route consisting of two stops. const routeLayer = new RouteLayer({ stops: [ { geometry: { x: -86.9074392, y: 21.0847238 } }, // Cancun Airport { geometry: { x: -88.1331506, y: 20.6354437 } } // Chichén Itzá ] }); const map = new Map({ basemap: "geoscene-blue", layers: [routeLayer] }); const view = new MapView({ container: "viewDiv", map }); await view.when(); // Solve the route and use the results to update the layer. const result = await routeLayer.solve(); routeLayer.update(result); // Zoom to the extent of the solved route. view.goTo(routeLayer.routeInfo.geometry);
-
update(routeLayerSolveResult)
-
使用已求解路径图层的结果更新图层。
参数:规范:routeLayerSolveResult Object有关可能传递给此方法的每个参数的详细信息,请参见下表。
规格:directionLines Collection<DirectionLine>与转弯之间的线段关联的方向多段线的集合。
directionPoints Collection<DirectionPoint>将方向项目集合为具有各种显示信息的点。
readPointBarriers Collection<PointBarrier>点障碍的集合。
polygonBarriers Collection<PolygonBarrier>面障碍的集合。
polylineBarriers Collection<PolylineBarrier>折线障碍的集合。
routeInfo RouteInfo有关已解决路线的信息,包括路线几何形状以及总距离和时间。
stops Collection<Stop>站点的集合。表示路线的起点、终点或中点。
- 也可查阅:
-
一旦创建了类的实例,就可以利用
when()
。这个方法有两个输入参数:一个callback
函数和一个errback
函数。callback
在类的实例加载时执行。如果类的实例无法加载,则执行errback
。参数:callback Functionoptional当 promise 解决时调用的函数。
errback Functionoptional当 promise 失败时执行的函数。
返回:类型 说明 Promise 为 callback
的结果返回一个新的 Promise,它可用于 chain 附加函数。示例:// 尽管此示例使用 MapView,但任何作为 Promise 的类实例都可以以相同的方式使用 when() let view = new MapView(); view.when(function(){ // 当 Promise resolved 时,函数将被执行 }, function(error){ // 当 Promise 通过 rejected 抛错时,这个函数将被执行 });
类型定义
-
RouteLayerSolveResult
-
计算路线和方向的结果。
- 属性:
-
directionLines Collection<DirectionLine>
表示与各个方向项关联的折线段。
directionPoints Collection<DirectionPoint>将方向项表示为具有各种显示信息的点。
pointBarriers Collection<PointBarrier>使用 RouteLayer 时限制沿街道网络行驶的点障碍。
polygonBarriers Collection<PolygonBarrier>使用 RouteLayer 时限制沿街道网络行驶的面障碍。
polylineBarriers Collection<PolylineBarrier>使用 RouteLayer 时限制沿街道网络行驶的折线障碍。
routeInfo RouteInfo包含有关已解决路线的信息,包括路线几何形状以及总距离和时间。
stops Collection<Stop>表示使用 RouteLayer 创建的路线的起点、终点或中点。
事件概览
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
{view: View,layerView: LayerView} |
更多信息
在图层的 LayerView 创建并在视图中呈现后触发。 |
更多信息 | Layer | |
{view: View,error: Error} |
更多信息
在将图层添加到地图后创建 LayerView 期间发出错误时触发。 |
更多信息 | Layer | |
{view: View,layerView: LayerView} |
更多信息
在层的 LayerView 被销毁并且不再在视图中呈现后触发。 |
更多信息 | Layer |
事件详情
-
layerview-createinherited
-
在图层的 LayerView 创建并在视图中呈现后触发。
示例:// 每次为此特定视图创建图层视图时,都会触发此函数。 layer.on("layerview-create", function(event){ / 发出此事件的图层的 LayerView event.layerView; });
-
layerview-create-errorinherited
-
在将图层添加到地图后创建 LayerView 期间发出错误时触发。
示例:// 在创建图层的图层视图期间发生错误时会触发此函数 layer.on("layerview-create-error", function(event) { console.error("LayerView failed to create for layer with the id: ", layer.id, " in this view: ", event.view); });