Skip to content

工具模块

工具模块提供量算、分析、几何和投影等实用功能。

G.utils

G.utils 是一个对象,包含以下子模块和快捷方法:

ts
G.utils.measurement  // 量算模块
G.utils.analysis     // 分析模块
G.utils.geom         // 几何工具
G.utils.projection   // 投影工具
G.utils.distance(points)  // 快捷方法:计算两点距离
G.utils.length(line)      // 快捷方法:计算线长度

G.utils.distance(points)

计算两点间的距离。

ts
G.utils.distance(point1: Coordinate, point2: Coordinate): number
参数类型描述
point1[number, number]起点坐标
point2[number, number]终点坐标

返回值:距离值(单位取决于当前坐标系)。

ts
const d = G.utils.distance([116.39, 39.90], [116.40, 39.91]);
// d > 0

G.utils.length(line)

计算线要素的长度。

ts
G.utils.length(line: LineString | Geometry): number
参数类型描述
lineLineString | Geometry线几何对象

返回值:长度值(单位取决于当前坐标系)。

ts
const line = G.geom.lineString([[116, 39], [117, 40]]);
const len = G.utils.length(line);
// len >= 0

G.utils.measurement

量算模块,提供更全面的测量功能。

ts
G.utils.measurement

包含的方法(来自 @gmap/geoMeasurement):

方法说明
distance(p1, p2)计算两点距离
length(geom)计算线长度
area(geom)计算面积
perimeter(geom)计算周长

G.utils.analysis

分析模块,提供空间分析功能。

ts
G.utils.analysis

包含的方法(来自 @gmap/geoAnalysis):

方法说明
buffer(geom, dist)缓冲区分析
intersect(a, b)相交分析
union(a, b)合并分析
difference(a, b)差集分析
centroid(geom)质心计算

G.utils.geom

几何工具模块,提供几何操作和验证。

ts
G.utils.geom
方法说明
contains(outer, inner)判断包含关系
intersects(a, b)判断相交
distance(a, b)计算距离
centroid(geom)计算质心
area(geom)计算面积
length(geom)计算长度

G.utils.projection

投影工具模块,提供坐标转换功能。

ts
G.utils.projection
方法说明
transform(coord, from, to)坐标系转换
getDistance(c1, c2)计算球面距离
ts
// 转换坐标系
const wgs84 = G.utils.projection.transform([116, 39], 'EPSG:4326', 'EPSG:3857');

投影工具 — G.projection()

创建投影对象用于坐标系转换。

ts
G.projection(code: string, definition?: string): Projection
参数类型描述
codestring坐标系代码(如 'EPSG:4326')(必填)
definitionstringProj4 投影定义字符串
ts
const p = G.projection('EPSG:4326', '+proj=longlat +datum=WGS84');

p.transform([116, 39], 'EPSG:3857');  // 坐标转换
p.forward([116, 39]);                   // 地理坐标 -> 投影坐标
p.inverse([116, 39]);                   // 投影坐标 -> 地理坐标
p.equals(G.projection('EPSG:4326'));    // true

四川省交通运输综合地理服务平台 地图开发框架