var Graphhopperip = 'http://127.0.0.1:9090';//路径规划
//界面按钮绑定事件
function addUIListen() {
document.getElementById("startPosButton").onclick = startPosButtonClick;
document.getElementById("endPosButton").onclick = endPostButtonClick;
document.getElementById("beginButton").onclick = startButtonClick;
}
addUIListen();
var handler;
var mouseStart = undefined;//鼠标起点
var mouseEnd = undefined;//鼠标终点
//设置起始位置坐标
function startPosButtonClick() {
console.log("设置起始位置坐标");
//定义canvas屏幕点击事件
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
//注册鼠标事件,event参数是点击的地方是在哪里
handler.setInputAction(function (movement) {
// debugger
//定义一个屏幕点击的事件,pickPosition封装的是获取点击的位置的坐标
var ray = viewer.camera.getPickRay(movement.position);
var position = viewer.scene.globe.pick(ray, viewer.scene);
//输出之后我们发现坐标信息都是大数目,因为cesium定义的球体坐标都是笛卡尔坐标,所以我们需要转换笛卡尔坐标
console.log("笛卡尔:" + position);
//将笛卡尔坐标转化为弧度坐标
var cartographic = Cesium.Cartographic.fromCartesian(position);
console.log("弧度:" + cartographic);
//将弧度坐标转换为经纬度坐标(先转弧度再转经纬度简单一点,直接转换的方法也有,不过推荐用这种)
var longitude = Cesium.Math.toDegrees(cartographic.longitude); //经度
var latitude = Cesium.Math.toDegrees(cartographic.latitude); //纬度
var height = cartographic.height; //高度
console.log("经纬度:" + longitude, latitude, height);
console.log("经度:" + longitude + "纬度:" + latitude + "高度:" + height);
let CartographicCenter = new Cesium.Cartographic(Cesium.Math.toRadians(longitude), Cesium.Math.toRadians(latitude), height);
setStartPointData(longitude, latitude, height);
var pos = {
longitude: longitude,
latitude: latitude,
height: height
}
var startp = cm.CreatePoint(pos, "pathstartpoint", "../img/icon.png", "路径起点");
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
//设置终点位置坐标
function endPostButtonClick() {
console.log("设置终点位置坐标");
//定义canv
Cesium 使用graphhopper实现路径规划
最新推荐文章于 2024-12-02 00:06:01 发布