cesium怎么点击屏幕获取polyline的经纬度
时间: 2023-11-28 13:29:34 浏览: 160
66.(cesium篇)cesium鼠标移动获取地图信息.zip
要在 Cesium 中点击屏幕获取 polyline 的经纬度,你需要使用 Cesium API 中的 `ScreenSpaceEventHandler` 来监听鼠标点击事件。然后,通过 `viewer.scene.pickPosition` 方法获取点击处的地理坐标。最后,使用 `Cesium.Cartographic.toCartesian` 方法将地理坐标转换为笛卡尔坐标。以下是示例代码:
```javascript
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
handler.setInputAction(function(click) {
var pickedObject = viewer.scene.pick(click.position);
if (Cesium.defined(pickedObject) && pickedObject.id && pickedObject.id.polyline) {
var position = viewer.scene.pickPosition(click.position);
if (Cesium.defined(position)) {
var cartographicPosition = Cesium.Cartographic.fromCartesian(position);
var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
console.log("Clicked on polyline at (lon, lat): " + longitude + ", " + latitude);
}
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
```
这段代码会在左键单击时检测鼠标所在位置是否在 polyline 上,并且获取该位置的经纬度。注意,这里假设 polyline 已经被添加到了场景中,并且每个 polyline 都有一个唯一的 `id` 属性。
阅读全文