2.6 场景点位交互获取
漫游场景的时候,用户往往想知道鼠标点击的场景坐标是什么,通常用这些坐标来进行业务功能的开发。
在SDK中,有监听鼠标、键盘的事件对象(EventObj),该对象负责反馈鼠标当前位置在哪,键盘按下了什么键等等信息。
假设我们需要获取鼠标左键按下的屏幕坐标位置和场景坐标位置。
左键按下的信息是通过回调函数来获取的,这里默认是返回经纬度坐标,当鼠标在三维地图里点击的时候,则会触发 lbtnDownCallback 这个回调,其会在参数列表里返回我们所需的坐标值。来看个例子:
var eventObj = new CooSDK.EventObj({
lbtnDownCallback: getInfo
});
function getInfo(xPos, yPos, zPos) {
console.log("经纬度坐标:" + xPos + ',' + yPos + "," + zPos);
}
若需要得知当前鼠标左键按下的相对于三维地图屏幕左上角的屏幕坐标,可以这么写:
var eventObj = new CooSDK.EventObj({
isGetGeo: false,
lbtnDownCallback: getInfo
});
function getInfo(xPos, yPos) {
console.log("屏幕坐标:" + xPos + ',' + yPos);
}
我们也可以根据屏幕坐标XY值,用ConversionObj对象来计算获取三维场景的坐标:
var conversionObj = new CooSDK.ConversionObj();
var geoPos = conversionObj.screenPosToGeoPos(new CooSDK.Vector2Obj(xPos, yPos));
需要注意的是,EventObj对象只能有且只有一个,创建多个该对象,仅最后一个创建的对象功能才正常生效。
现在你已经学会如何获取三维场景的指定点位,可以便捷的获取坐标信息,其余功能请查看详细的API文档和相关示例。