二維界面(test.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>測試demo</title>
<link rel="stylesheet" href="./css/animate.min.css" />
<script src="./js/jquery.min.js"></script>
<script type="text/javascript">
paramer= {"xmin":116.54021315114413,"ymin":38.417550531259764,"xmax":118.73747877614413,"ymax":39.507943597666014}
function callChild(fun, paramer) {
syniframe("http://127.0.0.1:8020/二三維同步demo/test/syn3DMap.html", fun, paramer);
}
function syniframe(url, fun, paramer,x) {
var paramerurl = 'fun=' + fun + '¶mer=' + paramer +'&t=' + Math.random();
paramerurl = encodeURI(paramerurl);
if (typeof(synobj) == 'undefined') {
synobj = document.createElement('iframe');
synobj.name = 'synframe';
synobj.src = url + '?' + paramerurl;
synobj.style.display = 'none';
document.body.appendChild(synobj);
} else {
synobj.src = url + '?' + paramerurl;
}
}
</script>
</head>
<body>
<div id="maincontent" style="width: 100%;height: 100%;">
<div id="map2DContainer" style="position: absolute;height: 100%; left:0px; top: 0px; right: 50%; bottom: 0;">
<input id="button" type="button" value="按鈕" onclick="callChild(thislocation关拒,paramer)" />
</div>
<div id="map3DContainer" style="position: absolute;height: 99.6%;left:50%; top: 0px; right: 0; bottom: 0;">
<iframe name="map3dframe" onload="" src="http://127.0.0.1:8020/二三維同步demo/test/test.html" scrolling="no" frameborder="0" style="width: 100%; height: 100%;overflow-y:hidden;overflow-x:hidden;" /></iframe>
</div>
</div>
</body>
</html>
三維界面(syn3DMap.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title> </title>
</head>
<body>
<script type="text/javascript">
var src = window.location.href;
// 解析參數(shù)
var winurl = src;
var wlp = winurl.split("?")[1];
var wincs = wlp.split("&");
if(wincs != null && wincs.length > 0){
for (var i = 0; i < wincs.length; i++) {
var tur = wincs[i].split("=");
if (tur[0] == "fun") {
fun = tur[1];
}else if(tur[0] == "paramer"){
paramer = tur[1];
}
}
}
paramer = paramer.substring(0,paramer.length);
// 函數(shù)名
var obj = eval('(' + paramer + ')');
if (fun="thislocation"){
parent.window.map3dframe.thislocation(obj.xmin,obj.xmax,obj.ymin,obj.ymax);
}
</script>
</body>
</html>
三維界面(test.html)
<!DOCTYPE html>
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8">
<title></title>
<script>
var flyurl="D:\data\tjfly\YJP_MX\fly\kong.fly";
function load(){
SGWorld.Project.Open(flyurl)
}
function thislocation(xmin,xmax,ymin,ymax){
if(xmin&&xmax&&ymin&&ymax){
var pointArray=[];
pointArray.push(xmin);
pointArray.push(ymax);
pointArray.push(0);
pointArray.push(xmax);
pointArray.push(ymax);
pointArray.push(0);
pointArray.push(xmax);
pointArray.push(ymin);
pointArray.push(0);
pointArray.push(xmin);
pointArray.push(ymin);
pointArray.push(0);
pointArray.push(xmin);
pointArray.push(ymax);
pointArray.push(0);
var groupId=SGWorld.ProjectTree.CreateGroup("temp");
//創(chuàng)建一個extent對應(yīng)的矩形致讥,找到一個合適的高度適應(yīng)extent(范圍)
var polygon=SGWorld.Creator.CreatePolygonFromArray(pointArray,0xFF00FF00,0x00646464,2,groupId);
var dist=polygon.Terrain.GetRecommendedDistance();
var cpos=SGWorld.Creator.CreatePosition(polygon.Geometry.Envelope.Centroid.X, polygon.Geometry.Envelope.Centroid.Y , 0, 0, 0, -89, 0, dist*0.65);
SGWorld.ProjectTree.DeleteItem(groupId);
SGWorld.Navigate.FlyTo(cpos);
}
}
</script>
</head>
<body onload="load()" style="width:100%;height:100%;">
</body>
<object id="TerraExplorer3DWindow" classid="CLSID:3A4F9192-65A8-11D5-85C1-0001023952C1" style="width:100%;height:100%;"></object>
<object id="SGWorld" classid="CLSID:3A4F9199-65A8-11D5-85C1-0001023952C1" style="width:100%;height:100%;"></object>
</html>