经纬志
首页 / OpenLayers / API 文档

Point

先看结论

点几何体。用一个二维(或三维)坐标表示位置,是最常用的几何类型。

最后验证 2026-11-03 · OpenLayers 10.3.1 · 更新 2026-10-27 · 引用本文
new ol.geom.Point(coordinates, layout)

构造参数

参数说明
coordinates[x, y] 或 [x, y, z],投影单位
layout坐标维度声明,默认 'XY',可设 'XYZ'、'XYM'、'XYZM'

正确写法与错误写法

/* 正确:经纬度先转成视图投影 */
var point = new ol.geom.Point(
  ol.proj.fromLonLat([116.391263, 39.907359])
);

/* 错误:直接放经纬度,点会落在赤道附近 */
var wrong = new ol.geom.Point([116.391263, 39.907359]);

fromLonLat 默认转到 EPSG:3857。 视图改用其他投影时,第二个参数要跟着改, 否则同一个点在不同投影的视图里位置不一致。

常用方法

方法说明
getCoordinates()取坐标数组
setCoordinates(c)直接替换坐标,不校验投影
transform(src, dst)原地转换投影,修改自身
getExtent()返回退化范围 [x, y, x, y]
getType()返回 'Point'
clone()复制一个相同的点
rotate(angle, anchor)绕过锚点旋转
var p = new ol.geom.Point([0, 0]);
p.setCoordinates(ol.proj.fromLonLat([121.473701, 31.230416]));

/* 取经纬度用于展示或入库 */
var lonlat = ol.proj.toLonLat(p.getCoordinates());
console.log(lonlat[0].toFixed(6), lonlat[1].toFixed(6));

getCoordinates() 返回的是内部数组的引用, 直接修改它不会触发要素重绘。要改坐标请用 setCoordinates, 或者改完调用 geometry.dispatchEvent('change')。

三维坐标

布局为 XYZ 时,坐标数组第三个值是高程。 普通点图层会忽略 z 值,只按平面位置绘制, 高程信息可以靠属性或文字标注来体现。

var p3d = new ol.geom.Point([116.391, 39.907, 45], 'XYZ');
p3d.getCoordinates();   // [116.391, 39.907, 45]
引用本文

经纬志(2026)。《Point》。https://www.jingweizhi.com/openlayers/api/point.html(访问日期 2026-11-03)。