思路:根據已知的一條Polyline來創建一個動態對象,沿着這個Polyline軌跡運動的對象;
在實際的項目應用中,我們可以用這種對象來模擬台風運動軌跡、跟蹤車輛GPS軌跡等;
程序很簡單,如下:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <title>DynamicObject</title> 6 <script type = "text/javascript" language = "javascript"> 7 var gPolyObj = null; 8 function StartCal() { 9 var SGWorld = new CreateSGObj(); 10 gPolyObj = SGWorld.Creator.CreateDynamicObject(0, 1, 1, "010", 100, 0, 0, "010"); 11 gPolyObj.CircularRoute = 0; 12 gPolyObj.TurnSpeed = 100; 13 14 var ItemID = SGWorld.ProjectTree.FindItem("Polyline"); 15 if (ItemID > 0) { 16 var obj = SGWorld.ProjectTree.GetObject(ItemID); 17 for (var i = 0; i < obj.Geometry.Points.count; i++) { 18 var RouteWaypoint = SGWorld.Creator.CreateRouteWaypoint(obj.Geometry.Points.Item(i).X, obj.Geometry.Points.Item(i).Y, obj.Geometry.Points.Item(i).Z,800,0,0,0,0,0,-1); 19 20 gPolyObj.Waypoints.AddWaypoint(RouteWaypoint); 21 } 22 } 23 24 SGWorld.Navigate.FlyTo(gPolyObj,11); 25 } 26 27 function CreateTempGroup(groupname) { 28 var SGWorld = new CreateSGObj(); 29 var gid = SGWorld.ProjectTree.FindItem(groupname); 30 if (gid > 0) { 31 32 } 33 else { 34 gid = SGWorld.ProjectTree.CreateLockedGroup(groupname, 0); 35 } 36 return gid; 37 } 38 39 function DelTemp(groupname) { 40 var SGWorld = new CreateSGObj(); 41 var gid = SGWorld.ProjectTree.FindItem(groupname); 42 if (gid > 0) { 43 SGWorld.ProjectTree.DeleteItem(gid); 44 } 45 } 46 47 /* 48 功能: 創建sgworld對象 49 備注: 趙賀 2011.04.01. 50 */ 51 function CreateSGObj() { 52 var obj = $("sgworld"); 53 if (obj == null) { 54 obj = document.createElement('object'); 55 document.body.appendChild(obj); 56 obj.name = "sgworld"; 57 obj.id = "sgworld"; 58 obj.classid = "CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1"; 59 } 60 return obj; 61 } 62 function $(id) { 63 return window.document.getElementById(id); 64 } 65 </script> 66 </head> 67 <body> 68 <table style="margin: 0px; border: 0px;"> 69 <tr> 70 <td colspan="4"> 71 <input id="Button6" type="button" value="繪制" onclick="StartCal()" /> 72 </td> 73 </tr> 74 </table> 75 </body> 76 </html>
