坐标转换 - Coordinate
约 639 字大约 2 分钟
经纬度坐标转屏幕坐标
将给定的地图点转换为屏幕点。屏幕点表示相对于视图左上角的像素点。
语法:toScreen(point)
point
:一个点几何图形。
mapView.toScreen({
x: 102.92934063304513,
y: 25.102234987110343,
spatialReference: {
wkid: 4326, // WGS-84坐标系
}
})
常见的一些 WKID:
- 3857:Web墨卡托投影,用于大多数Web地图应用程序。
- 4326:WGS84地理坐标系,经纬度坐标系。
- 102100 / 102200:ArcGIS Online 底图使用的Web墨卡托投影。
- 3413 / 3031:南极和北极的极面投影。
- 27700:英国国家格网,适用于英格兰、威尔士和苏格兰。
屏幕坐标转经纬度坐标
将给定的屏幕点转换为地图点。屏幕点表示相对于视图左上角的像素点。
语法:toMap(screenPoint)
screenPoint
:要转换的屏幕位置(或本地鼠标事件)。
mapView.toMap({
x: 23342,
y: 32354
})
投影转换
将几何图形或几何图形数组投影到指定的输出空间参考。
语法:project(geometry, outSpatialReference, geographicTransformation?)
geometry
:要传入的几何图形。outSpatialReference
:要转换几何图形坐标的空间参考。geographicTransformation
:用于转换几何图形的地理变换。指定此参数可在默认变换不适合您的要求时投影几何图形。
import * as projection from "@arcgis/core/geometry/projection"
projection.project(polygonGraphic.geometry, { wkid: 4326 })
4326转3857
将几何图形从地理单位(wkid: 4326)转换为Web墨卡托单位(wkid: 3857)。
语法:geographicToWebMercator(geometry)
geometry
:要传入的几何图形。
import * as webMercatorUtils from "@arcgis/core/geometry/support/webMercatorUtils.js"
webMercatorUtils.geographicToWebMercator(polygonGraphic.geometry)
3857转4326
将几何图形从Web墨卡托单位(wkid: 3857)转换为地理单位(wkid: 4326)。
语法:webMercatorToGeographic(geometry, isLinear?)
geometry
:要传入的几何图形。isLinear
:指示是否使用线性值,即不归一化。默认情况下,此转换方法会对xmin和xmax值进行归一化。如果不需要这样做,请将该值指定为true。默认值为false。
import * as webMercatorUtils from "@arcgis/core/geometry/support/webMercatorUtils.js"
webMercatorUtils.webMercatorToGeographic(polygonGraphic.geometry)
可用于 extent
坐标转换,转换成经纬度坐标范围:
import * as webMercatorUtils from "@arcgis/core/geometry/support/webMercatorUtils.js"
webMercatorUtils.webMercatorToGeographic(mapView.extent)
经纬度坐标转XY坐标
将给定的纬度和经度(十进制度数)值转换为Web墨卡托XY值。
语法:lngLatToXY(lng, lat)
import * as webMercatorUtils from "@arcgis/core/geometry/support/webMercatorUtils.js"
webMercatorUtils.lngLatToXY(121.123452, 31.353223)
XY坐标经转纬度坐标
将给定的Web墨卡托坐标转换为经度和纬度值(十进制度数)。默认情况下,返回的经度是标准化的,以便其在-180和+180之间。
语法:xyToLngLat(x, y)
import * as webMercatorUtils from "@arcgis/core/geometry/support/webMercatorUtils.js"
webMercatorUtils.xyToLngLat(15413, 56334)