首页 / 浏览问题 / WebGIS / 问题详情
ceisum中的相机中心视点如何转换为leaflet的坐标中心点
23EXP 2023年10月26日
const ToggleModel = () => {
	const viewer = initViewer();
	commStore.changeModelIs3D()
	if (commStore.ModelIs3D) {
		//三维球体上
		const twoPosition = window.leafletMap.getCenter()
		const zoom = window.leafletMap.getZoom()
		console.log(twoPosition, '三维上经纬度')
		const xyz = Cesium.Cartesian3.fromDegrees(twoPosition.lng, twoPosition.lat, 10000)
		viewer.camera.setView({
			destination: xyz
		})

	} else {
		// 二维平面上
		const threePosition = viewer.scene.camera.position
		const lngLat3D = Cartesian3_to_WGS84(threePosition)
		const center = window.L.latLng(lngLat3D.lat, lngLat3D.lng)
		window.leafletMap.setView(center, 4)
		console.log(center, '二维上经纬度')
	}

}

我在开发二三维平台的时候需要对三维球体和二维平面进行切换,于是我在切换的时候设置他们的视口位置,但是现在如何能够把三维的地面离相机的高度也就是height转换为leaflet中的缩放层级zoom呢,再二维切三维的时候再将zoom锁对应的层级切换会三维的相机高度height呢,以达到查看位置再切换二三维时查看的是同一个地方

1个回答

你好,目前没有这样的功能转换。

提供一个思路仅供参考:在同一个坐标系下,可以自定义zoom层级,然后根据获取的三维高度值判断属于哪个zoom,将结果返回后在leaflet上定位。

https://www.cnblogs.com/CyLee/p/16005608.html

其他做过相关需求的博客https://blog.csdn.net/Free2140/article/details/118144590

1,865EXP 2023年10月26日
...