2.10.2 坐标转换
坐标转换
屏幕坐标转经纬度坐标
//将屏幕坐标(100,200)转换为经纬度
var pos = CooWasm.Conversion.xyToLlh(100,200);
console.log("转换后经纬度坐标:"+pos.x+','+pos.y+','+pos.z);
屏幕坐标转经纬度坐标(批量)
//批量转换
var posArr = CooWasm.Conversion.vec2ArrayToLlhArray([
new CooWasm.Vec2Obj(100, 200),
new CooWasm.Vec2Obj(200, 200),
new CooWasm.Vec2Obj(100, 300),
new CooWasm.Vec2Obj(300, 200)
]);
// 遍历 Vec3Obj 数组并格式化输出
for (let i = 0; i < posArr.length; i++) {
const point = posArr[i];
console.log(
`[${i}]: x=${point.x}, y=${point.y}, z=${point.z}`
);
}
经纬度坐标转屏幕坐标
//将经纬度坐标(120.2210638516, 30.2109931702, 0.01)转为屏幕坐标
var pos = CooWasm.Conversion.llhToVec2(120.2210638516, 30.2109931702, 0.01);
console.log("转换后屏幕坐标:"+pos.x+','+pos.y);
实时经纬度坐标转屏幕坐标
系统将按照指定时间间隔自动返回以下数据:
- 经纬度坐标点对应的屏幕像素坐标
- 每个坐标点与相机位置的实时距离
var posArr = CooWasm.Conversion.llhArrayToVec2Array([ new CooWasm.Vec3Obj(120.22106, 30.210994, 0.01), new CooWasm.Vec3Obj(120.22107, 30.210995, 0.01), new CooWasm.Vec3Obj(120.22108, 30.210996, 0.01), new CooWasm.Vec3Obj(120.22109, 30.210997, 0.01) ], 30,// 数据更新间隔(每30ms返回一次) info =>{ const { distanceArr, vec2Arr } = info; console.log("实时坐标转换 (共" + vec2Arr.length + "个点):"); vec2Arr.forEach((vec, index) => { console.log(`点${index + 1}: 屏幕坐标(${pixelCoord.x}, ${pixelCoord.y}) | 距离相机: ${distanceArr[index]}米`); }); });
CooWasm开发者中心操作指南(坐标转换)
演示系统
1.选择功能模块: 在开发者中心左侧列表中,依次选择辅助工具→坐标转换。
2.不同坐标系转换: 点击屏幕坐标转三维坐标/三维坐标转屏幕坐标,会将转换后的坐标显示出来。
3.批量屏幕坐标转三维坐标: 点击批量屏幕坐标转三维坐标,按下f12,会在控制台将转换后的坐标输出出来。
4.实时坐标转换: 点击实时三维坐标转屏幕坐标,按下f12,会实时将转换后的坐标输出在控制台。