首页 / OpenLayers / API 文档
Point
先看结论
点几何体。用一个二维(或三维)坐标表示位置,是最常用的几何类型。
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)。