ControlPointsGeoreference 用于使用 controlPoints、width 和 height 参数设置 MediaLayer 中引用的 ImageElement 或 VideoElement 的地理位置。使用两个 controlPoints 定位、缩放和旋转元素。此外,它将通过三个 controlPoints 进行扭曲。通过四个 controlPoints,透视变换应用于元素。
// the spatial reference for the MediaLayer, North American Datum 1927
const spatialReference = new SpatialReference({ wkid: 4267 });
// create an array of four control points composed of a sourcePoint, a point
// on the image element in pixels, and a mapPoint which is the location of the
// sourcePoint in map space
const swCorner = {
sourcePoint: { x: 80, y: 1732 },
mapPoint: new Point({ x: -107.875, y: 37.875, spatialReference })
};
const nwCorner = {
sourcePoint: { x: 75, y: 102 },
mapPoint: new Point({ x: -107.875, y: 38, spatialReference })
};
const neCorner = {
sourcePoint: { x: 1353, y: 99 },
mapPoint: new Point({ x: -107.75, y: 38, spatialReference })
};
const seCorner = {
sourcePoint: { x: 1361, y: 1721 },
mapPoint: new Point({ x: -107.75, y: 37.875, spatialReference })
};
const controlPoints = [swCorner, nwCorner, neCorner, seCorner];
// georeference for the imageElement using the control points,
// image width, and image height
const georeference = new ControlPointsGeoreference({ controlPoints, width: 1991, height: 2500 });
const imageElement = new ImageElement({
image: "https://jsapi.maps.arcgis.com/sharing/rest/content/items/1a3df04e7d734535a3a6a09dfec5a6b2/data",
georeference
});
// create a MediaLayer using the georeferenced ImageElement
const mediaLayer = new MediaLayer({
source: [imageElement],
title: "Geologic Map of the Telluride Quadrangle, Southwestern Colorado",
copyright: "Wilbur S Burbank and Robert G. Luedke, 1966",
opacity: 0.5,
spatialReference
});
已知限制
ControlPointsGeoreference
目前在 3D SceneViews 中不受支持。
构造函数
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
ControlPoint[] | 定位媒体元素的两个、三个或四个 controlPoints 数组。 更多详情 | ControlPointsGeoreference | |
String | 类的名称。 更多详情 | Accessor | |
Number | 定义显示元素的大小,通常以像素为单位定义元素的高度。 更多详情 | ControlPointsGeoreference | |
String | 对于 ControlPointsGeoreference,类型总是 "control-points"。更多详情 | ControlPointsGeoreference | |
Number | 定义显示元素的大小,通常以像素为单位定义元素的宽度。 更多详情 | ControlPointsGeoreference |
属性详细信息
-
controlPoints ControlPoint[]
-
定位媒体元素的两个、三个或四个 controlPoints 数组。使用两个 controlPoints 定位、缩放和旋转元素。此外,它将通过三个 controlPoints 进行扭曲。通过四个 controlPoints,透视变换应用于元素。
- 默认值:null
示例const swCorner = { sourcePoint: { x: 80, y: 1732 }, mapPoint: new Point({ x: -107.875, y: 37.875, spatialReference }) }; const neCorner = { sourcePoint: { x: 1353, y: 99 }, mapPoint: new Point({ x: -107.75, y: 38, spatialReference }) }; const controlPoints = [swCorner, neCorner];
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
height Number
-
定义显示元素的大小,通常以像素为单位定义元素的高度。此属性与 controlPoin ts 和 width 一起用于定位元素。
- 默认值:0
-
type String
-
对于 ControlPointsGeoreference,类型总是 "control-points"。
-
width Number
-
定义显示元素的大小,通常以像素为单位定义元素的宽度。此属性与 controlPoints 和 height 一起用于定位元素。
- 默认值:0
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
Point | 将给定的 sourcePoint 转换为 mapPoint。 更多详情 | ControlPointsGeoreference | |
SourcePoint | 将给定的 mapPoint 转换为 sourcePoint。 更多详情 | ControlPointsGeoreference |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// 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() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
如果存在指定的句柄组,则返回 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"); }
-
removeHandles(groupKey)inherited
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toMap(sourcePoint){Point}
-
将给定的 sourcePoint 转换为 mapPoint。sourcePoint 表示相对于元素左上角的像素点。
参数sourcePoint SourcePoint元素上的位置。
返回类型 描述 Point 与给定 sourcePoint 相对应的 mapPoint,使用在第一个控制点的 mapPoint 中找到的空间参考。 示例const mapPoint = controlPointGeoreference.toMap({x: 100, y: 250})
-
toSource(point){SourcePoint}
-
将给定的 mapPoint 转换为 sourcePoint。sourcePoint 表示相对于元素左上角的像素点。
参数point Point点几何。如果该点与第一个控制点的 mapPoint 中的点不在同一空间参考中,则将重新投影该点。需要加载投影引擎来执行重新投影,否则返回
null
。返回类型 描述 SourcePoint 元素上与给定 mapPoint 相对应的位置。 示例// North_American_Datum_1927 const spatialReference = new SpatialReference({ wkid: 4267 }); const sourcePoint = controlPointGeoreference.toSource(new Point({ x: -107.875, y: 37.875, spatialReference }))
类型定义
-
ControlPoint Object
-
controlPoints 数组中的控制点对象。控制点由表示元素上的点的 sourcePoint 和映射地图空间中 sourcePoint 位置的 mapPoint 组成。
- 属性
-
sourcePoint SourcePoint
图像坐标空间中控制点的坐标。
mapPoint Point地图坐标空间中控制点的坐标。
示例const controlPoint = { sourcePoint: { x: 0, y: 0 }, mapPoint: new Point({ x: -180, y: 85 }) };