@allmaps/ 项目
此模块扩展 GCP 变形器类 @ allmaps/ 转换 具有预测功能的预测GCP变换器类别及其方法可以 转换 和项目 点、 线条、 多边形 从图像“ 资源” 空间到“ ” 其他空间特征预计数 地球空间.
预测由 Proj4js (英语: 图书馆。 这个软件包支持任何由Proj4js支持的投影(或更一般的,坐标参考系统或CRS).
在Allmaps项目中,该模块被使用a.o. in @ allmaps/ 放弃 财务报告和审定财务报表 @ allmaps/ 平板电脑,两个地方,我们利用地控点和地图的"地理参考注释"所定义的变换类型,将图像的"资源"空间转换为地图投影(大多数情况下是WebMercator)的"预测地理空间".
如何运作
此套件导出 ProjectedGcpTransformer 类,扩展 GcpTransformer 课程从 @ allmaps/ 转换。 。 。 .
比如说 GcpTransformer 类,实例 ProjectedGcpTransformer 类从 一组控制点,在两个空间中,谁的坐标是已知的(在lon-lat中,谁的地坐标是给出的) EPSG:4326 和具体 转换类型 算法。 此外,还可以定义一个内部投影和投影,以便不从"资源"到"地"空间,而是从"资源"到取景口"预测地"空间,可选通过地图的"内部预测地"空间. 使用 toProjectedGeo() 财务报告和审定财务报表 toResource() 方法(或 toGeo() 以获取 EPSG:4326 (a) 预测.
这个 预测 定义视图端口的“预测的地平面”空间。 因为我们将在我们视站的预计空间中使我们的地平面变形,因此,通过提供其投影使变形器了解这个空间是合乎逻辑的,这样它就能将结果带到这个空间. 它默认为 Web 计算器 EPSG:3857,默认情况下在大多数 webmaps 中使用的预测.
这个 内部预测 定义“ 内部预测的地理” 空间。 这是已知或假设的投影的空间 。 当我们知道这种预测时,这一点很重要,例如当转变时 toGeo,以建立一个 toGeoTransfromation 介于图像的“ 资源” 空间和已知或假定的投影的“ 内部预测地理” 空间之间。 这样,我们做转换账户 仅限 用于将图像扭曲到预定的投影空间,而不是由于选择取景口投影(可能与地图投影不同)而用于任何其他的取景. 为了将地图“内部预测地球”空间的结果带到取景口的“预测地”空间,将“内部预测地”到“预测地”空间的投影函数设定为 postToGeo 选项(这是GCP变换选项的一部分),并在变换器末端执行 toProjectedGeo() 方法。 同样,当呼叫 toResource() 方法 a preToResource() 执行从“预测的地上”空间到“内部预测的地上”空间,然后评估 toResourceTransformation 到达资源空间 “ 内部预测的地理” 空间也默认为 Web Mercator EPSG:3857 (因为它的"形式"属性使它成为地图在大尺度上投影的好一般猜测). 当内部投影和投影完全相同(如默认)时 postToGeo() 函数是一个无效果的身份投影.
GCP必须用 Lon-lat 提供 EPSG:4326 投影(因为这是GeoJSON和GeoReference June使用的默认投影),并在建造GCP变换器(将投影到"内部预测地"空间)之前被投影到"预测地"空间.
安装
这是一个只在浏览器和Node.js中工作的无害环境管理模块.
用 pnpm 安装 :
pnpm install @allmaps/project
使用量
快速启动
类似于 GCP 变形器, 当起始于 注释 或者说 地理参考地图建造预计的GCP变换器的最快方法是:
import { parseAnnotation } from '@allmaps/annotation'
import { ProjectedGcpTransformer } from '@allmaps/project'
// Fetch an annotation
const annotation = await fetch(annoationUrl).then((response) => response.json())
// Create a georeferencedMap from the annotation
const georeferencedMaps = parseAnnotation(annotation)
const georeferencedMap = georeferencedMaps[0]
// Build Projected GCP Transformer
const projectedTransformer =
ProjectedGcpTransformer.fromGeoreferencedMap(georeferencedMap)
// Use it to transform geometries, as below. E.g.:
const projectedGeoPoint = projectedTransformer.transformToProjectedGeo(resourcePoint)
这相当于从Annotation's或GeoReferenced Map's GCP,变换类型和投影中构建出一个预测变压器,如下出的例子.
然后,这个预测变压器可用于在“资源”空间和“预测地球”空间之间转换几何.
何时 渲染 地图,快速获得投影变压器的另一种方法是直接从一个 被扭曲的地图 在渲染器被扭曲的地图列表中:
// Create a renderer from your canvas
const renderer = new WebGL2Renderer(gl)
// Fetch and parse annotations, add them to the renderer ...
// There are multiple ways to access the renderer's Warped Map List's Warped Maps, e.g.:
const warpedMap = renderer.warpedMapList.getWarpedMap(mapId)
// Access the Projected GCP Transformer, in the Warped Map's current transformation type
const projectedTransformer = warpedMap.projectedTransformer
// Or select or create the Projected GCP Transformer of a different transformation type
const projectedHelmertTransformer = warpedMap.getProjectedTransformer('helmert')
使用带有默认 Web 变压器的变压器 EPSG:3857 预测
在这个例子中,我们创建了带有 Thin Plate Spline 转换和默认内部投影和投影的预测变压器: WebMercator EPSG:3857。 。 。 .
这个投影变压器因此赋予了WebMercator EPSG:3857 向前转换时坐标 .
import { ProjectedGcpTransformer } from '@allmaps/project'
const gcps6 = [
{
resource: [1344, 4098],
geo: [4.4091165, 51.9017125]
},
{
resource: [4440, 3441],
geo: [4.5029222, 51.9164451]
},
{
resource: [3549, 4403],
geo: [4.4764224, 51.897309]
},
{
resource: [1794, 2130],
geo: [4.4199066, 51.9391509]
},
{
resource: [3656, 2558],
geo: [4.4775683, 51.9324358]
},
{
resource: [2656, 3558],
geo: [4.4572643, 51.9143043]
}
]
const options = {
minOffsetRatio: 0.001,
maxDepth: 1
}
const projectedTransformer = new ProjectedGcpTransformer(
gcps6,
'thinPlateSpline',
options
)
const resourceLineString = [
[3655, 2212],
[2325, 3134],
[3972, 325],
[3451, 2876],
[2067, 920],
[622, 941]
]
const projectedGeoLineString =
projectedTransformer.transformToProjectedGeo(resourceLineString)
// projectedGeoLineString = [
// [498246.8195647142, 6789061.316027705],
// [496595.9732655353, 6787546.801212325],
// [494783.7898554361, 6785995.114473057],
// [496391.8586632488, 6790623.562354985],
// [498497.64212101337, 6795403.988950945],
// [498135.8154413349, 6791100.393518668],
// [498076.9264938777, 6786883.571136022],
// [495239.5461210053, 6790036.9871731205],
// [492300.2095900435, 6793167.011607833],
// [489770.9992948517, 6793018.672759057],
// [487201.94796965295, 6792860.379165613]
// ]
注意这如何返回 WebMecator 坐标中的行串 .
使用带有特定内部投影的变压器
在这个例子中,我们创建了带有"薄板斯平"变换的预测变压器,内部投影设定为"BD72 / Belgian Lambert 72" EPSG:31370 和投影仪 EPSG:3857。 。 。 .
import { ProjectedGcpTransformer } from '@allmaps/project'
const gcps6 = ... // See above
const epsg31370 =
'+proj=lcc +lat_0=90 +lon_0=4.36748666666667 +lat_1=51.1666672333333 +lat_2=49.8333339 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs +type=crs'
const options = {
minOffsetRatio: 0.001,
maxDepth: 1,
internalProjection: epsg31370
}
const projectedTransformer = new ProjectedGcpTransformer(gcps6, 'thinPlateSpline', options)
const resourceLineString = [
[3655, 2212],
[2325, 3134],
[3972, 325],
[3451, 2876],
[2067, 920],
[622, 941]
]
const projectedGeoLineString = projectedTransformer.transformToProjectedGeo(resourceLineString)
// const projectedGeoLineString = [
// [498247.196090505, 6789061.7676701555],
// [496596.0857961293, 6787546.818863111],
// [494783.8626652385, 6785995.157771795],
// [496392.4627162781, 6790624.950878147],
// [498501.57678734255, 6795410.032138047],
// [498137.15972611686, 6791102.130838948],
// [498076.85849569837, 6786883.389086489],
// [495239.9136289843, 6790037.973029668],
// [492298.9972965987, 6793169.702451241],
// [489767.88734149706, 6793019.906716891],
// [487196.5540720398, 6792859.377809678]
// ]
注意此返回与以往不同点的WebMecator坐标中的行String, 因为它的转换在将结果投影到WebMecator之前使用了另一个内部投影.
使用带有特定内部投影和投影的变压器
同样,也可以同时指定内部投影和投影.
在这个例子中,我们创建了一个预测变压器,其中将“资源”空间转换成“内部预测”空间 EPSG:31370 投影,并将结果带入“ Amersfort / RD” New 中的“ 预测地球” 空间 EPSG:28992 预测.
import { ProjectedGcpTransformer } from '@allmaps/project'
const gcps6 = ... // See above
const epsg31370 = ... // See above
const epsg28992 = "+proj=sterea +lat_0=52.1561605555556 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.4171,50.3319,465.5524,1.9342,-1.6677,9.1019,4.0725 +units=m +no_defs +type=crs"
const options = {
minOffsetRatio: 0.001,
maxDepth: 1,
internalProjection: epsg31370,
projection: epsg28992
}
const projectedTransformer = new ProjectedGcpTransformer(gcps6, 'thinPlateSpline', options)
const resourceLineString = [
[3655, 2212],
[2325, 3134],
[3972, 325],
[3451, 2876],
[2067, 920],
[622, 941]
]
const projectedGeoLineString = projectedTransformer.transformToProjectedGeo(resourceLineString)
// const projectedGeoLineString = [
// [92171.96319801327, 439250.7392195241],
// [91140.1318550074, 438330.2059945731],
// [90008.06902330121, 437388.3781427277],
// [91038.64166624477, 440228.31014306704],
// [92378.19922071013, 443158.54244443506],
// [92119.83597131, 440508.5490631829],
// [92049.81893950628, 437909.7404415105],
// [90322.16486404435, 439875.89373726887],
// [88531.49536626287, 441828.6782593381],
// [86967.57638718556, 441757.502798549],
// [85378.67808803722, 441680.55210508476]
// ]
注意这如何返回 WebMecator 中的线条String 坐标, 与先前的点相同, 但预计为 EPSG : 28992
转换为不同的投影
自兹 projection 是一个 转换 选项,可以设置在每次变换方法调用上。 这使得我们能将所请求的投影从预计的变压器创建时指定的投影改变为 任意 预测。 因此,我们不需要为每个感兴趣的投影创建一个预测变压器:我们可以再用变压器及其到Geo和/或资源转换(如果有许多GCP的话,其计算可能很昂贵).
我们可以使用上面的预测变压器请求“toGeo”变压的结果如下:
// Same projectedTransformer as above:
// internalProjection: epsg31370,
// projection: epsg28992
const projectedGeoLineString = projectedTransformer.transformToProjectedGeo(
resourceLineString,
{ projection: { definition: 'EPSG:3857' } }
)
// const projectedGeoLineString = [
// [ 498247.1996476347, 6789061.760253225 ],
// [ 496596.08934986574, 6787546.81144527 ],
// [ 494783.8662153203, 6785995.150353045 ],
// [ 496392.4662716557, 6790624.943463034 ],
// [ 498501.58034885704, 6795410.0247265855 ],
// [ 498137.16328437213, 6791102.123423815 ],
// [ 498076.8620512022, 6786883.381667706 ],
// [ 495239.91718228994, 6790037.965614326 ],
// [ 492299.00084753655, 6793169.695039346 ],
// [ 489767.8908886019, 6793019.899305481 ],
// [ 487196.5576152448, 6792859.370398756 ]
// ]
注意如何返回结果与先前预测的内部预测结果非常相近 EPSG:31370 和默认投影器 EPSG:3857。 。 。 .
改变预测的变压器在 变压器 选项(在默认情况下总是使用),使用 setProjection() 方法.
如上所述,通过变换呼号的投影已经通过 postToGeo 从变压器的内部投影到请求的投影.
注:内部投影没有相应的选项.
创建和使用预测变压器
由于预测GCP变形器类扩展了GCP变形器类,因此其许多用法相似. (见 @ allmaps/ 转换 用于提供下列项目的更详细信息.
当从预测的 GCP 变形器类创建实例时 :
- 这个 全球供应链 使用
Gcp类型和地理成分在lon-lat “EPSG:4326”中. - 一样 转换类型 已支持:
polynomial, (中文(简体) ),thinPlateSpline,, , , , , , , , . - 两个 额外选项 可设定 :
projection指定预测的地理空间( 默认为 Web 计算器)EPSG:3857),以及intenalProjection指定在计算转换时使用的预测( 也默认为 WebMercator)EPSG:3857) (中文(简体) ). 就像GCP变形器一样differentHandedness默认为真实.
在使用其主要方法时:
- 方法
transformToProjectedGeo()将输入的几何空间从“ 资源” 空间转换为“ 预测的地理” 空间, 作为方法transformToResource()将输入的几何空间从“ 预测的地理” 空间转换为“ 资源 ” 空间 . - 另一种方法
transformToGeo()在lon-lat"EPSG:4326"中将输入的几何空间从"资源"转换为"geo". - 输入遵循了Allmaps Geometries类型. 要处理 GeoJSON Geometries 或 SVG Geometries, 使用可用的函数转换到这些几何类型 @allmaps/stdlib (英语)。 。 。 .
- GCP 变换选项 可指定和管理如何精炼几何和计算哪些扭曲。 现在,在提炼几何和递归地加中点时,会考虑预测功能.
- A 类 返回类型函数 可用于提取扭曲信息或修改结果.
SVG Geometries 和 GeoJSON Geometries 之间的更快转换, GcpTransfers 也有相同的快捷方式静态方法: transformSvgToGeojson(), (中文(简体) ), transformSvgStringToGeojsonFeatureCollection(), (中文(简体) ), transformGeojsonToSvg(), (中文(简体) ), transformGeojsonFeatureCollectionToSvgString()。 。 。 .
注:扭曲只描述变换的曲折,从"资源"空间到"内部预测地"空间. (在“预测出地”空间之前描述曲面需要应用链式规则,并能够访问投影函数的部分衍生物。 )
预计全球方案 变形器选项
预计 GCP 变换器有额外的“ 转换器选项 ” :
| 选项 | 说明 | 类型 | 默认 |
|---|---|---|---|
internalProjection | 在转型中内部使用的地理预测. | Projection | 网络服务器 EPSG:3857 |
由于内部投影定义了内部所预测的空间,从中计算出变相,变相调用无法指定不同的内部投影.
预计全球方案 变换选项
预测 GCP 变换器有额外的“变换选项 ” :
| 选项 | 说明 | 类型 | 默认 |
|---|---|---|---|
projection | 景点的地理投影. | Projection | 网络服务器 EPSG:3857 |
和GCP变压器一样,在变压器的构造过程中通过这个变压选项在此使用变压方法时是默认的.
和其他GCP一样 变形 选项,可在构建变压器时设置此选项 财务报告和审定财务报表 当转换几何。 这可能是有用的,因为它使我们能够重新使用变压器的 toGeo和/或资源转换(当有许多GCP时,计算成本可能很昂贵)来转换为新的投影. (见上文实例。 )
键入
预测的定义如下:
export type Projection = {
name?: string
definition: string | proj4.PROJJSONDefinition
}
投影定义可以兼容任何东西 Proj4js (英语:,比如说.
两个默认命名预测中的一个 'EPSG:3857' 'EPSG:4326',一个正弦 '+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs'(自Proj4js版本2.19起) a 普罗杰森 定义.
基准
以下是在2023 MacBook Air M2和16 GB RAM上计算出来的建造和使用变压器的一些基准.
此基准可用 pnpm run bench。关于更多信息,参见 ./bench/index.js。 。 。 .
要创建一个预测变压器( 有 10 分) 并计算其“ 到 Geo” 转换 :
| 类型 | 行动 |
|---|---|
| 舵手 | 31178号 |
| 多边形1 | 39583 (英语) |
| 聚诺米亚2 | 31907 (英语) |
| 单声道3 | 2013年7 (中文(简体) ) |
| 薄板线 | 17325 (英语) |
| 投影 | 20322 (英语) |
要使用投影变压器( 有 10 个点, 并且其“ 到 Geo” 变换已经计算) 并转换“ 到 Geo ” :
| 类型 | 行动 |
|---|---|
| 舵手 | 3906562 (英语) |
| 多边形1 | 3595760 (英语) |
| 聚诺米亚2 | 3568346 (韩语) |
| 单声道3 | 20187742 (英语) |
| 薄板线 | 1759935 (英语) |
| 投影 | 3621210 (韩语) |
许可证
麻省理工学院
API 密码
InternalProjectionInputs
字段
internalProjection?(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )
ProjectedGcpTransformOptions
类型
ProjectionInputs & {
maxDepth: number
minSourceDistance: number
minDestinationDistance: number
minOffsetRatio: number
minOffsetDistance: number
distortionMeasures: DistortionMeasure[]
referenceScale: number
postToGeo: ProjectionFunction
preToResource: ProjectionFunction
} & MultiGeometryOptions
new ProjectedGcpTransformer(gcps, type, partialProjectedGcpTransformerOptions)
创建预测的 Gcp 转换器
参数
gcps(单位:千美元)Array<Gcp>(中文(简体) )- Lon-lat'EPSG:4326'中的地控点阵列
type(单位:千美元)TransformationType | undefined(中文(简体) )- 转换类型
partialProjectedGcpTransformerOptions?(单位:千美元)Partial<ProjectedGcpTransformerOptions> | undefined(中文(简体) )- 预计全球方案 变形器选项
回返
ProjectedGcpTransformer。 。 。 .
扩展
GcpTransformer
ProjectedGcpTransformer#gcps
获取GCP, 因为它们被输入到 GCP 变换器中(Array<Gcp>) (中文(简体) ).
对于一个预测的GCP变换器,这些是预测坐标中的GCP.
ProjectedGcpTransformer#getToGeoTransformationResolution(resourceBbox, partialProjectedGcpTransformOptions)
在给定bbox内获取资源空间中的toGeo转换分辨率.
这能让你知道在资源空间里 拨动有多精细. 例如,在资源空间中创建一个三角化可以有所帮助 这足以进行曲动或设置分钟源码选项.
它通过转换成吉奥两条线来获得, 即给定box的横向和纵向中线. ToGeo变换将完善这些线: 它会把它们碎成小块 以获得近乎连续的结果.
分辨率以资源坐标测量的最短块长度返回, 如果不需要改进,则不加界定.
参数
resourceBbox?(单位:千美元)Bbox | undefined(中文(简体) )- 请求解析或未定义从 GCP 获取此解析度的资源空间中的 BBox
partialProjectedGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )
回返
资源空间的toGeo变换的分辨率(number | undefined) (中文(简体) ).
ProjectedGcpTransformer#getToProjectedGeoTransformationResolution(resourceBbox, partialProjectedGcpTransformOptions)
在给定的bbox内获取资源空间中的 ToProjectedGeo 转换的解析度 .
这能让你知道在资源空间里 拨动有多精细. 例如,在资源空间中创建一个三角化可以有所帮助 这足以进行曲动或设置分钟源码选项.
它通过转换成ProjectedGeo两行线来获得, 即给定box的横向和纵向中线. 预测Geo变换将完善这些线条: 它会把它们碎成小块 以获得近乎连续的结果.
分辨率以资源坐标测量的最短块长度返回, 如果不需要改进,则不加界定.
参数
resourceBbox?(单位:千美元)Bbox | undefined(中文(简体) )- 请求解析或未定义从 GCP 获取此解析度的资源空间中的 BBox
partialProjectedGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )
回返
解决资源空间中已预测的吉奥变换问题number | undefined) (中文(简体) ).
ProjectedGcpTransformer#getToResourceTransformationResolution(projectedGeoBbox, partialProjectedGcpTransformOptions)
在一个给定的bbox内,获取预测地空中资源转换的分辨率.
这可以让你了解在预测的地球空间中 旋转的精度有多高. 例如,在预测的地空上建立三角定位可能是有益的 足以进行曲折或设置分解分解选项.
它通过转换为资源两行, 即给定box的横向和纵向中线. 资源转化将完善这些路线: 它会把它们碎成小块 以获得近乎连续的结果.
以内部预测地理坐标测量的最短地段长度返回分辨率, 如果不需要改进,则不加界定.
参数
projectedGeoBbox?(单位:千美元)Bbox | undefined(中文(简体) )- 请求解析的预测地理空间中的 BBox, 或未定义从 GCP 中获取
partialProjectedGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )
回返
解决内部预测地空资源转化问题number | undefined) (中文(简体) ).
ProjectedGcpTransformer#interalProjectedGcps
将全球氯化石蜡放入相向预测坐标(Array<Gcp>) (中文(简体) ).
ProjectedGcpTransformer#internalProjection
类型
{id?: string; name?: string; definition: ProjectionDefinition}
ProjectedGcpTransformer#internalProjectionToProjection
类型
(point: Point) => Point
ProjectedGcpTransformer#isNonWarping()
参数
没有参数.
回返
boolean。 。 。 .
ProjectedGcpTransformer#lonLatToProjection
类型
(point: Point) => Point
ProjectedGcpTransformer#lonlatGcps
将全球氯化石蜡放入相向预测坐标(Array<Gcp>) (中文(简体) ).
ProjectedGcpTransformer#projectedGcps
在预测坐标中获取GCP(Array<Gcp>) (中文(简体) ).
ProjectedGcpTransformer#projection
类型
{id?: string; name?: string; definition: ProjectionDefinition}
ProjectedGcpTransformer#projectionToInternalProjection
类型
(point: Point) => Point
ProjectedGcpTransformer#projectionToLonLat
类型
(point: Point) => Point
ProjectedGcpTransformer#transformToGeo(resourcePoint, partialGcpTransformOptions, gcpToP)
参数
resourcePoint(单位:千美元)[number, number](中文(简体) )partialGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )gcpToP?(单位:千美元)((gcp: GcpAndDistortions) => P) | undefined(中文(简体) )
回返
P。 。 。 .
ProjectedGcpTransformer#transformToProjectedGeo(resourcePoint, partialGcpTransformOptions, gcpToP)
参数
resourcePoint(单位:千美元)[number, number](中文(简体) )partialGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )gcpToP?(单位:千美元)((gcp: GcpAndDistortions) => P) | undefined(中文(简体) )
回返
P。 。 。 .
ProjectedGcpTransformer#transformToResource(projectedGeoPoint, partialGcpTransformOptions, gcpToP)
参数
projectedGeoPoint(单位:千美元)[number, number](中文(简体) )partialGcpTransformOptions?(单位:千美元)Partial<ProjectedGcpTransformOptions> | undefined(中文(简体) )gcpToP?(单位:千美元)((gcp: GcpAndDistortions) => P) | undefined(中文(简体) )
回返
P。 。 。 .
ProjectedGcpTransformer.fromGeoreferencedMap(georeferencedMap, options)
从地理参考地图创建预测的 GCP 变换器
参数
georeferencedMap(单位:千美元){ '@context'?: "https://schemas.allmaps.org/map/2/context.json" | undefined; type: "GeoreferencedMap"; id?: string | undefined; created?: string | undefined; modified?: string | undefined; ... 5 more ...; _allmaps?: unknown; }(中文(简体) )- 地理参考地图
options?(单位:千美元)Partial<{ internalProjection: Projection; projection: Projection; } & { differentHandedness: boolean; } & { maxDepth: number; minSourceDistance: number; minDestinationDistance: number; ... 5 more ...; preToResource: ProjectionFunction; } & MultiGeometryOptions & TransformationTypeInputs> | undefined(中文(简体) )- 选项,包括预测的 GCP 变换器选项,以及一个用于推翻地理参考地图所定义类型的转换类型
回返
预测的GCP变换器ProjectedGcpTransformer) (中文(简体) ).
ProjectedGcpTransformer.fromProjection(projectedTransformer, projection)
设定投影.
将“ toGeo” 或“ to Requeration” 转换为或从不同的投影 (但使用相同的内部投影) 可以在变换选项中指定所请求的投影.
这样我们就可以避免可能很昂贵的重算 和/或资源转换.
要更系统地做到这一点,就有可能 使用这种方法预测出gcp变压器的投影.
参数
projectedTransformer(单位:千美元)ProjectedGcpTransformer(中文(简体) )projection(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )
回返
此(ProjectedGcpTransformer) (中文(简体) ).
ProjectedGcpTransformerInputs
类型
GcpsInputs &
TransformationTypeInputs &
InternalProjectionInputs &
ProjectionInputs
ProjectedGcpTransformerOptions
类型
{ internalProjection: Projection; projection: Projection; } & { differentHandedness: boolean; } & { maxDepth: number; minSourceDistance: number; minDestinationDistance: number; ... 5 more ...; preToResource: ProjectionFunction; } & MultiGeometryOptions
Projection
字段
definition(单位:千美元)Definition(中文(简体) )id?(单位:千美元)string(中文(简体) )name?(单位:千美元)string(中文(简体) )
ProjectionDefinition
类型
string | PROJJSONDefinition
ProjectionInputs
字段
projection?(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )
defaultProjectedGcpTransformOptions
字段
projection(单位:千美元){id?: string; name?: string; definition: string}(中文(简体) )
defaultProjectedGcpTransformerOptions
字段
internalProjection(单位:千美元){id?: string; name?: string; definition: string}(中文(简体) )projection(单位:千美元){id?: string; name?: string; definition: string}(中文(简体) )
getLonLatDefinition(partialProjectionDefinitionOptions)
参数
partialProjectionDefinitionOptions?(单位:千美元)Partial<ProjectionDefinitionOptions> | undefined(中文(简体) )
回返
string。 。 。 .
getWebMercatorDefinition(partialProjectionDefinitionOptions)
参数
partialProjectionDefinitionOptions?(单位:千美元)Partial<ProjectionDefinitionOptions> | undefined(中文(简体) )
回返
string。 。 。 .
isEqualProjection(projection0, projection1)
参数
projection0(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )projection1(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )
回返
boolean。 。 。 .
lonLatProjection
lonLat 预测
EPSG:4326 带有定义的投影: "+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees +over"
请注意: +over 被添加到支持环绕时空
字段
definition(单位:千美元)string(中文(简体) )id(单位:千美元)string(中文(简体) )name(单位:千美元)string(中文(简体) )
projectionDefinitionToAntialiasedDefinition(stringProjectionDefinition, partialProjectionDefinitionOptions)
参数
stringProjectionDefinition(单位:千美元)string(中文(简体) )partialProjectionDefinitionOptions?(单位:千美元)Partial<ProjectionDefinitionOptions> | undefined(中文(简体) )
回返
string。 。 。 .
projectionToAntialiasedProjection(projection, partialProjectionDefinitionOptions)
参数
projection(单位:千美元){id?: string; name?: string; definition: ProjectionDefinition}(中文(简体) )partialProjectionDefinitionOptions?(单位:千美元)Partial<ProjectionDefinitionOptions> | undefined(中文(简体) )
回返
{id?: string; name?: string; definition: ProjectionDefinition}。 。 。 .
webMercatorProjection
网络计算器预测
EPSG:3857 带有定义的投影: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs +over"
请注意: +over 被添加到支持环绕时空
字段
definition(单位:千美元)string(中文(简体) )id(单位:千美元)string(中文(简体) )name(单位:千美元)string(中文(简体) )