接口说明
为指定摄像机飞行时间,单位为秒
二三维BS开发,实现二三维联动的代码参考
下面的代码采用Lua(易景地球直接支持的脚本语言)实现
——————————————————–
CameraChanged = 0 –摄像机是否发生了变化,=0表示没有变化,=1表示已经发生了变化
evControl:AddEvent(“OnCameraChanged”,function ()
CameraChanged = 1
end)
–从一个folder中提取所有图层
function traverseLocateLayer(n)
if(n == nil) then
return nil
end
folder = n:GetChild(“image”)
if folder == nil then
return nil
end
return folder:GetChild(“CHN”)
end
function OnTimer()
if CameraChanged == 0 then
return
end
local scene = evControl.Scene.EvEarthScene
if scene == nill then
return
end
local camera = scene.Camera
if camera.EyeshotChanged < 500 then
return
end
CameraChanged = 0
–查找CHN的影像图层
local image = traverseLocateLayer(scene.Doc.RootFolder)
if image == nil then
return
end
–取得当前影像的基本和摄像机对应的坐标位置
local level = image.MaxVisibleLevel
local lookat = camera:GetLookAt()
if lookat ~= nil then
zoom2DtoExtent(lookat.Longitude,lookat.Latitude,level)
end
end
evTimer.every(1,OnTimer) –启动计时器
—————————————————————————-
在js脚本中要实现control.Object2Lua(“zoom2DtoExtent”,zoom2DtoExtent)
其中control为易景地球三维控件变量
以上代码实现可以适应于ie,firefox,chrom浏览器
补充:
lua脚本语言的使用方式可以参考易景地球帮助文档
具体可以从 “开始-所有程序-EIVA-EviaEarth-帮助-易景地球帮助文档“ 找到
启动帮助文档后lua说明的位置如下图所示: