var scene; var sceneControl; //var sceneUrl = "http://10.2.65.242:8090/iserver/services/3D-wetland/rest/realspace"; var sceneUrl = "http://59.55.128.156:8090/iserver/services/3D-wetland/rest/realspace"; //var sceneUrl = null; // var data_url = "http://10.2.65.242:8090/iserver/services/data-ZHSD/rest/data"; //数据服务地址 var data_url = "http://10.2.65.242:8090/iserver/services/data-wetland/rest/data"; //数据服务地址 //flyManager1沿线飞行类变量声明 var flyManager1 = null; var flyRoutes1 = null; var flyRoute1 = null; var routeLoaded1 = false; var playRate1 = 1; //flyManager2飞行定制类变量声明 var routeLoaded2 = false; var RouteStops2 = null; var flystop_p = null; //站点修改 var fly_judge = true; var it = -1; $(document).ready(function () { try { //初始化三维场景控件实例,参数为包含控件的HTML元素 sceneControl = new SuperMap.Web.UI.Controls.SceneControl($get("sceneControlDiv"), initCallback, failedCallback); } catch (e) { //若没有安装插件,则抛出该异常 if (e.name == SuperMap.Web.Realspace.ExceptionName.PlugInNotInstalled) { var url = "http://59.55.128.156:8000/GZSWURL/otherURL/Setup.exe"; document.write("未检测到 SuperMap iClient3D for Plugin 插件,请单击此处下载并安装插件。"); return; } //若使用非IE浏览器,则抛出该异常 else if (e.name == SuperMap.Web.Realspace.ExceptionName.BrowserNotSupport) { document.write("

SuperMap iClient3D for Plugin 目前仅支持 InternetExplorer 浏览器,请更换浏览器后重新尝试加载本页面。

"); return; } //抛出其他异常 else { alert("其他异常"); } } }); //控件初始化完成后的回调函数,初始化完成之后才能进行数据加载 function initCallback() { //获取Realspace控件的场景,控件和场景是一对一的捆绑关系 scene = sceneControl.get_scene(); //获取FlyManager对象 flyManager1 = scene.get_flyManager(); //指定场景的服务器地址 var sceneAddress = sceneUrl; //指定场景名称 var sceneServicesList = sceneControl.get_sceneServicesList(); var bLoad = sceneServicesList.load(sceneAddress); if (bLoad) { var sceneServiceInfo = sceneServicesList.get_item(0); sceneName = sceneServiceInfo.get_name(); } else { alert("Realspace initialized failed!"); } //打开场景 LoadLayers(sceneAddress, sceneName); scene.open(sceneAddress, sceneName); Initialize_layer(); ////添加场景点击事件 sceneControl.addEvent("objectSelected", objectSelected); sceneControl.addEvent("bubbleInitialize", bubbleInitialize); sceneControl.addEvent("bubbleResize", bubbleResize); sceneControl.addEvent("bubbleClose", bubbleClose); } //加载图层 function LoadLayers(sceneAddress, sceneName) { //从选中的场景中获取图层列表 var layer3DServicesList = sceneControl.get_layer3DServicesList(); //判断是否获取指定场景的图层集合服务列表 var bLayersLoad = layer3DServicesList.load(sceneAddress, sceneName); } function Initialize_layer() { //添加在线天地图影像 // var tianditu_img = new SuperMap.Web.Realspace.Layer3DTianditu("http://t0.tianditu.com/img_c/wmts", "img", "t0.tianditu.com_WMTS", 96, SuperMap.Web.Realspace.ImageType.JPGPNG); //var cc = scene.get_layer3Ds().insert(tianditu_img, 25); //var tianditu_cva = new SuperMap.Web.Realspace.Layer3DTianditu("http://t0.tianditu.com/cva_c/wmts", "cva", "cva", 96, SuperMap.Web.Realspace.ImageType.JPGPNG); // var aa = scene.get_layer3Ds().insert(tianditu_cva, 10); //tianditu_cva.set_isVisible(false); //var tianditu_vec = new SuperMap.Web.Realspace.Layer3DTianditu("http://t0.tianditu.com/vec_c/wmts", "vec", "t0.tianditu.com_WMTS", 96, SuperMap.Web.Realspace.ImageType.JPGPNG); //tianditu_vec.set_isBackgroundTransparent(true); //var ss = scene.get_layer3Ds().insert(tianditu_vec, 11); //tianditu_vec.set_isVisible(false); var addvec = $('#Addtianditu').contents().find('#vec_layer'); $(addvec).click(function () { if (tianditu_img.get_isVisible() == true) { $('#Addtianditu').contents().find('#vec_layer').css({ "background": "url(../images/layer_img/sl.png) no-repeat" }); $('#Addtianditu').contents().find('#vec_layer dt').text("地图"); tianditu_img.set_isVisible(false); tianditu_vec.set_isVisible(true); // return; } else { tianditu_img.set_isVisible(true); tianditu_vec.set_isVisible(false); $('#Addtianditu').contents().find('#vec_layer').css({ "background": "url(../images/layer_img/img.png) no-repeat" }); $('#Addtianditu').contents().find('#vec_layer dt').text("影像"); } }); $('#Addtianditu').contents().find('#name_layer').change(function () { if ($(this).is(':checked')) { tianditu_cva.set_isVisible(true); } else { tianditu_cva.set_isVisible(false); } }); //定义图层管理树状结构 $.fn.zTree.init($("#treeDemo"), setting, zNodes); //设置初始选择状态 set_InitialChecked(); /* var wmsURL2 = "http://59.55.128.156:8082/arcgis/services/ZYSD/MapServer/WMSServer" var layer3DWMS2 = scene.get_layer3Ds().addOGC(wmsURL2, "", SuperMap.Web.Realspace.Layer3DType.WMS, true); layer3DWMS2.set_isBackgroundTransparent(true); //将WMS图层添加到三维场景中 var wmsURL1 = "http://59.55.128.156:8082/arcgis/services/SDGY/MapServer/WMSServer" var layer3DWMS1 = scene.get_layer3Ds().addOGC(wmsURL1, "", SuperMap.Web.Realspace.Layer3DType.WMS, true); layer3DWMS1.set_isBackgroundTransparent(true); */ //var resultVar = layer3DWMS1.moveToTop(layer3DWMS1.indexOf()); scene.refresh(); } function AddstkTerrianLayer() { scene = sceneControl.get_scene(); //获取地形图层集合 var terrainLayers = scene.get_terrainLayers(); var layer_ter = terrainLayers.addSTKTerrain("https://assets.agi.com/stk-terrain/world", "stkTerrain"); } //控件初始化失败后的回调函数 function failedCallback() { alert("Realspace initialized failed!"); } function p1_close() { document.getElementById("play1").disabled = "disabled"; document.getElementById("stop1").disabled = "disabled"; document.getElementById("speed-1").disabled = "disabled"; document.getElementById("speed-2").disabled = "disabled"; } function p1_open() { document.getElementById("play1").disabled = false; document.getElementById("stop1").disabled = false; document.getElementById("speed-1").disabled = false; document.getElementById("speed-2").disabled = false; } function p2_close() { document.getElementById("play2").disabled = "disabled"; document.getElementById("pause2").disabled = "disabled"; document.getElementById("stop2").disabled = "disabled"; } function p2_open() { document.getElementById("play2").disabled = false; document.getElementById("pause2").disabled = false; document.getElementById("stop2").disabled = false; } /***********************************以下沿线飞行函数**************************************/ //沿线飞行--获取设置飞行路线 //获取飞行文件路径 function getFilePath() { return document.getElementById(x).value; } function fromFile() { flyManager1 = scene.get_flyManager(); if (flyManager1 != null) { if (flyManager1.get_flyStatus() == SuperMap.Web.Realspace.FlyStatus.FSTOP) { //获取飞行路线 flyRoutes1 = flyManager1.get_routes(); if (flyRoutes1 != null) { var filePath = $("#filePath").children('option:selected').val(); //这就是selected的值 if (flyRoutes1.fromFile(filePath) == false) { return false; } flyRoute1 = flyRoutes1.get_currentRoute(); playRate1 = 1; flyManager1.set_playRate(playRate1); routeLoaded1 = true; } } } else { return false; } } //function fromFile(files) { // var filepath = document.getElementById("openfile").value; // //获取飞行路线集合类对象,导入飞行路线文件 // var fpf_file = scene.get_flyManager().get_routes().fromFile(filepath); // if(fpf_file) { // flyRoutes1 = flyManager1.get_routes(); // flyRoute1 = flyRoutes1.get_currentRoute(); // // playRate1 = 1; // flyManager1.set_playRate(playRate1); // //设置飞行类对象的属性 // // document.getElementById("speed").value = flyRoute1.get_speed(); // // document.getElementById("time").value = flyManager1.get_duration(); // // document.getElementById("altitudeFixed").checked = flyRoute1.get_isAltitudeFixed(); // // document.getElementById("headingFixed").checked = flyRoute1.get_isHeadingFixed(); // // document.getElementById("tiltFixed").checked = flyRoute1.get_isTiltFixed(); // // document.getElementById("flyingLoop").checked = flyRoute1.get_isFlyingLoop(); // // document.getElementById("linesVisible").checked = flyRoute1.get_isLinesVisible(); // // document.getElementById("stopsVisible").checked = flyRoute1.get_isStopsVisible(); // routeLoaded1 = true; // } // //} //沿线飞行时间控制 $(function () { var filePathSelect = document.getElementById("filePath"); var filePathOptions = filePathSelect.options; var option1 = new Option("江西省重要湿地", "http://59.55.128.156:81/JXNU_Virtual/Virtual_Resources/wetland/江西省重要湿地.fpf"); var option2 = new Option("江西省湿地公园", "http://59.55.128.156:81/JXNU_Virtual/Virtual_Resources/wetland/江西省湿地公园.fpf"); var option3 = new Option("鄱阳湖国家湿地公园", "http://59.55.128.156:81/JXNU_Virtual/Virtual_Resources/wetland/鄱阳湖国家湿地公园.fpf"); var option4 = new Option("青山湖重要湿地", "http://59.55.128.156:81/JXNU_Virtual/Virtual_Resources/wetland/青山湖重要湿地.fpf"); //var option3 = new Option("湿地公园飞行路线", "http://59.55.128.155:81/JXNU_Virtual/Virtual_Resources/LY_FlyRoute1/山水之旅.fpf"); filePathOptions.add(option1); filePathOptions.add(option2); filePathOptions.add(option3); filePathOptions.add(option4); //filePathOptions.add(option3); $(".three-paly input").click(function (e) { var name = e.target.attributes.data.value; fromFile(); switch (name) { case "播放": //判断路径是否已加载。 if (routeLoaded1) { //重新获取速度和时长 // flyRoute1.get_speed(); // document.getElementById("time").value = flyManager1.get_duration(); if (flyManager1 == null && flyRoutes1 == null && flyManager1.get_flyStatus() == SuperMap.Web.Realspace.FlyStatus.FPLAY) { return; } else { flyManager1.play(); } p2_close(); // p1_open(); } break; case "停止": if (flyManager1 == null) return; flyManager1.stop(); break; case "加速": if (routeLoaded1) { if (flyRoutes1.get_count() == 0) { return; } if (playRate1 == 100) { return; } if (playRate1 < 1) { playRate1 = Number(playRate1) + 0.1; if (playRate1 == 1) { playRate1 = playRate1.toFixed(0); } else { playRate1 = playRate1.toFixed(1); } } else { playRate1 = Number(playRate1) + 1; playRate1 = playRate1.toFixed(0); } flyManager1.set_playRate(playRate1); // alert(flyManager1.get_playRate()); } break; case "减速": if (routeLoaded1) { if (flyRoutes1.get_count() == 0) { return; } if (playRate1 == 0.1) { return; } if (playRate1 <= 1) { playRate1 = playRate1 - 0.1; playRate1 = playRate1.toFixed(1); } else { playRate1 = playRate1 - 1; playRate1 = playRate1.toFixed(0); } flyManager1.set_playRate(playRate1); } break; default: break; } }); }); /***********************************以上沿线飞行函数**************************************/ /***********************************以下飞行定制函数**************************************/ //创建xml格式飞行路线 function createXml() { var text = ""; var flyrouteXML = new ActiveXObject("Microsoft.XMLDOM"); flyrouteXML.async = false; flyrouteXML.load(text); var p = flyrouteXML.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); flyrouteXML.appendChild(p); var SceneRoute = flyrouteXML.createElement("SceneRoute"); var xmlns = flyrouteXML.createAttribute("xmlns"); xmlns.nodeValue = "http://www.supermap.com.cn/ugc60"; SceneRoute.setAttributeNode(xmlns); flyrouteXML.appendChild(SceneRoute); var route = flyrouteXML.createElement("route"); var name = flyrouteXML.createAttribute("name"); var speed = flyrouteXML.createAttribute("speed"); var lineType = flyrouteXML.createAttribute("lineType"); var showroutestop = flyrouteXML.createAttribute("showroutestop"); var showrouteline = flyrouteXML.createAttribute("showrouteline"); var altitudefree = flyrouteXML.createAttribute("altitudefree"); var headingfree = flyrouteXML.createAttribute("headingfree"); var tiltfree = flyrouteXML.createAttribute("tiltfree"); var flycircle = flyrouteXML.createAttribute("flycircle"); var alongline = flyrouteXML.createAttribute("alongline"); name.nodeValue = "Route1"; speed.nodeValue = "50"; lineType.nodeValue = "0"; showroutestop.nodeValue = "False"; showrouteline.nodeValue = "False"; altitudefree.nodeValue = "False"; headingfree.nodeValue = "False"; tiltfree.nodeValue = "False"; flycircle.nodeValue = "True"; alongline.nodeValue = "True"; SceneRoute.setAttributeNode(name); SceneRoute.setAttributeNode(speed); SceneRoute.setAttributeNode(lineType); SceneRoute.setAttributeNode(showroutestop); SceneRoute.setAttributeNode(showrouteline); SceneRoute.setAttributeNode(altitudefree); SceneRoute.setAttributeNode(headingfree); SceneRoute.setAttributeNode(tiltfree); SceneRoute.setAttributeNode(flycircle); SceneRoute.setAttributeNode(alongline); SceneRoute.appendChild(route); var style = flyrouteXML.createElement("style"); SceneRoute.appendChild(style); var geostyle3d = flyrouteXML.createElement("geostyle3d"); var linecolor = flyrouteXML.createElement("linecolor"); linecolor.text = "RGBA(0,255,0,255)"; geostyle3d.appendChild(linecolor); var linewidth = flyrouteXML.createElement("linewidth"); linewidth.text = "2"; geostyle3d.appendChild(linewidth); var altitudeMode = flyrouteXML.createElement("altitudeMode"); linewidth.text = "Absolute"; geostyle3d.appendChild(altitudeMode); var bottomAltitude = flyrouteXML.createElement("bottomAltitude"); linewidth.text = "-3.00"; geostyle3d.appendChild(bottomAltitude); var flyRouteXML = flyrouteXML.xml; flyManager1.get_routes().clear(); //导入飞行路线 var r = flyManager1.get_routes().fromXML(flyRouteXML); if (r == true) { flyRoute1 = flyManager1.get_routes().get_currentRoute(); var routename = "Route_" + flyManager1.get_routes().get_count(); flyRoute1.set_name(routename); flyRoute1.set_speed(5000); flyRoute1.set_isAltitudeFixed(true); //flyRoute1.set_isFlyAlongTheRoute(false); flyRoute1.set_isHeadingFixed(false); flyRoute1.set_isTiltFixed(false); flyRoute1.set_isLinesVisible(false); flyRoute1.set_isStopsVisible(false); flyRoute1.set_isFlyingLoop(false); flyRoute1.set_defaultStyle(true); document.getElementById("addstop").disabled = false; document.getElementById("save").disabled = false; document.getElementById("del").disabled = false; document.getElementById("xml").disabled = "disabled"; //document.getElementById("stops").innerHtml=""; document.getElementById("stopslist").style.display = "block"; } fly_judge = false; p2_open(); p1_close(); } function addStops() { var RouteStop = new SuperMap.Web.Realspace.RouteStop(); var camera = scene.get_firstPersonCamera(); //var stopname="stop"+(flyManager1.get_routes().get_currentRoute().get_routeStops().get_count()+1); // RouteStop.set_name(stopname); RouteStop.set_camera(camera) flyRoute1 = flyManager1.get_routes().get_currentRoute(); var StopID = flyRoute1.get_routeStops().add(RouteStop); var stopname = "stop" + StopID; flyRoute1.get_routeStops().get_stop(StopID).set_name(stopname); var flystop = flyRoute1.get_routeStops().get_stop(StopID); // flyRoute1.set_isLinesVisible(document.getElementById("linesVisible").checked); // flyRoute1.set_isStopsVisible(document.getElementById("stopsVisible").checked); addStopList(StopID, stopname, flystop); } //站点列表创建, function addStopList(ID, StopName, flystop) { var img = document.createElement("img"); var list = document.createElement("li"); list.innerHTML = StopName; // var myText = document.createTextNode(StopName); // check.setAttribute("type", "checkbox"); img.setAttribute("src", "images/Stops.png") list.setAttribute("value", ID); list.setAttribute("data-name", "no"); // check.checked = true; document.getElementById("stops").appendChild(img); document.getElementById("stops").appendChild(list); // document.getElementById("stops").appendChild(myText); //将站点的相机以及其他的一些信息展示出来 $("#longitude").val(flystop.get_camera().get_longitude().toFixed(5)); //坐标经度 $("#latitude").val(flystop.get_camera().get_latitude().toFixed(5)); //坐标经度 $("#altitude").val(flystop.get_camera().get_altitude().toFixed(0)); //坐标经度 $("#speed").val(flyRoute1.get_speed()); // var ss = $("#speed").val(flystop.get_speed()); //坐标经度 li_click(); // $("#btnOk").click(function() { // flystop_l(ID); // }); } function li_click() { $("#stops li").click(function () { // if($(this).index() == $(this).val()) { //将站点的相机以及其他的一些信息展示出来 flystop_p = flyRoute1.get_routeStops().get_stop($(this).val()); $("#longitude").val(flystop_p.get_camera().get_longitude().toFixed(5)); //坐标经度 $("#latitude").val(flystop_p.get_camera().get_latitude().toFixed(5)); //坐标经度 $("#altitude").val(flystop_p.get_camera().get_altitude().toFixed(0)); //坐标经度 if ($(this).attr("data-name") == "no") { // $("#open-speed").removeAttr("checked"); $("#open-speed").attr("checked", false); $("#speed").attr("disabled", "disabled"); $("#speed").val(flyRoute1.get_speed()); } else if ($(this).attr("data-name") == "ok") { // $("#open-speed").attr("checked", 'true'); $("#open-speed").attr("checked", true); $("#speed").removeAttr("disabled"); $("#speed").val(flystop_p.get_speed()); // alert(flystop_p.get_speed()); // alert($(this).val()); } // if($("#open-speed").attr("checked")) { // $("#speed").val(flyRoute1.get_speed()); // } else { // $("#speed").val(flystop_p.get_speed()); // } // $("#speed").val(flystop_p.get_speed()); //坐标经度 // } it = $(this).val(); document.getElementById("btnOk").disabled = false; $(this).siblings().removeClass("at"); $(this).addClass("at"); }); } function flystop_l(it) { if (flystop_p == null) { return; } else { flystop_p.get_camera().set_longitude($("#longitude").val()); flystop_p.get_camera().set_latitude($("#latitude").val()); flystop_p.get_camera().set_altitude($("#altitude").val()); if ($("#open-speed").attr("checked") == undefined) { // flystop_p.set_speed(flyRoute1.get_speed()); $("#stops li").eq(it).attr("data-name", "no"); // document.getElementById("stops").find("li").eq(ID).setAttribute("data-name", "no"); // $("#stops li:eq(ID)").setAttribute("data-name", "no"); } else { $("#stops li").eq(it).attr("data-name", "ok"); // $("#stops li:eq(ID)").setAttribute("data-name", "ok"); flystop_p.set_speed($("#speed").val()); } } } function flySpeed() { var speed = document.getElementById("flyspeed").value; flyRoute1.set_speed(speed); flystop_p.set_speed(speed); } function del_f2() { } //删除创建的飞行路线临时文件 function delXml() { flyManager1.get_routes().clear(); document.getElementById("addstop").disabled = "disabled"; document.getElementById("btnOk").disabled = "disabled"; document.getElementById("del").disabled = "disabled"; document.getElementById("xml").disabled = false; document.getElementById("stopslist").style.display = "none"; //清空站点列表 var oDiv = document.getElementById("stops"); var n = oDiv.childNodes.length; for (var i = 0; i < n; i++) { oDiv.childNodes[0].parentNode.removeChild(oDiv.childNodes[0]); } fly_judge = true; p1_open(); p2_close(); } //保存飞行文件xml到C:\Users\Administrator\Desktop\flyRoute.xml function saveXml() { flyManager1.get_routes().toFile("C:/Users/Administrator/Desktop/flyRoute.xml"); alert('飞行文件已保存至桌面:flyRoute.xml'); } function play() { //判断路径是否已加载。 //if (routeLoaded) { //重新获取速度和时长 // document.getElementById("speed").value = flyRoute.get_speed(); //document.getElementById("time").value = flyManager1.get_duration(); if (flyManager1 == null && flyRoutes == null && flyManager1.get_flyStatus() == SuperMap.Web.Realspace.FlyStatus.FPLAY) { return; } else { flyManager1.play(); } // } } //暂停飞行 function pause() { if (flyManager1 == null) return; flyManager1.pause(); } //停止飞行 function stop() { if (flyManager1 == null) return; flyManager1.stop(); }