经纬度转WGS84坐标

该博客介绍了Cesium库中用于将经纬度转换为WGS84坐标的源码实现。代码详细展示了如何通过数学运算和坐标系转换,将经度、纬度和高度参数转化为三维空间中的Cartesian3坐标。涉及到的关键点包括坐标归一化、球面坐标到笛卡尔坐标转换等步骤。
摘要由CSDN通过智能技术生成

1 cesium/source/core/cartesian3.js 经纬度转WGS84坐标代码:

直接去github看cesium的源码实现就行了:

Cartesian3.fromRadians = function (
  longitude,
  latitude,
  height,
  ellipsoid, # default is WGS84
  result
) {
  //>>includeStart('debug', pragmas.debug);
  Check.typeOf.number("longitude", longitude);
  Check.typeOf.number("latitude", latitude);
  //>>includeEnd('debug');

  height = defaultValue(height, 0.0);
  var radiiSquared = defined(ellipsoid)
    ? ellipsoid.radiiSquared
    : wgs84RadiiSquared;

  var cosLatitude = Math.cos(latitude);
  scratchN.x = cosLatitude * Math.cos(longitude);
  scratchN.y = cosLatitude * Math.sin(longitude);
  scratchN.z = Math.sin(latitude);
  scratchN = Cartesian3.normalize(scratchN, scratchN);

  Cartesian3.multiplyComponents(radiiSquared, scratchN, scratchK);
  var gamma = Math.sqrt(Cartesian3.dot(scratchN, scratchK));
  scratchK = Cartesian3.divideByScalar(scratchK, gamma, scratchK);
  scratchN = Cartesian3.multiplyByScalar(scratchN, height, scratchN);

  if (!defined(result)) {
    result = new Cartesian3();
  }
  return Cartesian3.add(scratchK, scratchN, result);
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值