弧度单位
this.model.readyPromise.then(function (tileset) { //记录模型原始的中心点 var boundingSphere = tileset.boundingSphere; that.boundingSphere = boundingSphere; //模型原始的中心点。此处是笛卡尔坐标,单位:米。 var position = boundingSphere.center; // 此处是经纬度,单位:弧度;高度单位:米。 var catographic = Cesium.Cartographic.fromCartesian(position); var height = Number(catographic.height.toFixed(2)); // 此处是经纬度,单位:度。 var longitude = Number(Cesium.Math.toDegrees(catographic.longitude).toFixed(6)); var latitude = Number(Cesium.Math.toDegrees(catographic.latitude).toFixed(6)); that.originalCenter = { x: longitude, y: latitude, z: height }; console.log((that.config.name || "") + " 模型原始位置:" + JSON.stringify(that.originalCenter)); //offsetopt.x,y不能多次更改 updateMatrix: function (offsetopt) { if (this.model == null) return; console.log(" 模型修改后位置:" + JSON.stringify(offsetopt)); var boundingSphere = this.model.boundingSphere; var catographic = Cesium.Cartographic.fromCartesian(boundingSphere.center); var surface = Cesium.Cartesian3.fromRadians(catographic.longitude, catographic.latitude, 0.0); // 此处展示了,从经纬度(单位:度)-->笛卡尔坐标(单位:米)。 var offset = Cesium.Cartesian3.fromDegrees(offsetopt.x, offsetopt.y, offsetopt.z); var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3()); this.model.modelMatrix = Cesium.Matrix4.fromTranslation(translation); //this.model.update(); },
相关阅读
传递参数:地址1的纬度:$lat1 ,经度:$lng1,地址2的纬度 $lat2 ,经度:$lng2,示例:封装的方法:/** * 计算两个经纬度距离 */