<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>加载3dwindow</title>

</head>
<body onload="init3d()">
<div style="margin:0">
<button type="button" onclick="start_line"> 开始</button>
<!-- <span id='pos'></span> -->

<div id="3dmap" style="z-index:0;background-image:url('images/bg.jpg');width:100%;height:100%;margin-top:38px;position:fixed;">
<object class="window3d" id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1"></object>
</div>
</div>
</body>
<script type="text/javascript">
function init3d() {
var dmap = $("3dmap");
var TerraExplorer3DWindow = $("TerraExplorer3DWindow");
dmap.appendChild(CSGWorld());

var SGWorld = $("SGWorld");
//
// SGWorld.AttachEvent("onLButtonDown", onLButtonDown);
// SGWorld.AttachEvent("onRButtonDown", onRButtonDown);

var flyurl = "../Default.FLY";
SGWorld.Open(flyurl);
}

function $(id) {
return window.document.getElementById(id);
}

function CSGWorld() {
obj = document.createElement('object');
document.body.appendChild(obj);
obj.name = "SGWorld";
obj.id = "SGWorld";
obj.classid = "CLSID:3A4F919A-65A8-11D5-85C1-0001023952C1";
return obj;
}
</script>
<script type="text/javascript">
function start_line() {
var SGWorld = $("SGWorld");
SGWorld.AttachEvent("onLButtonDown", onLButtonDown);
SGWorld.AttachEvent("onRButtonDown", onRButtonDown);
}

var line_geometry = []

function onRButtonDown(flags, x, y) {

SGWorld.DetachEvent("onLButtonDown", onLButtonDown);
SGWorld.DetachEvent("onRButtonDown", onRButtonDown);

}

function onLButtonDown(flags, x, y) {
var SGWorld = $("SGWorld");

var ret = SGWorld.Window.PixelToWorld(x, y, flags);
line_geometry.push(ret.Position.X, ret.Position.Y, 180)
if (line_geometry.length > 1) {
var geometry = SGWorld.Creator.GeometryCreator.CreateLineStringGeometry(line_geometry)
}

var color = SGWorld.Creator.CreateColor(255, 0, 0, 0.7);
// 2 in AltitudeTypeCode means on terrain, "" means add to root 
var line = SGWorld.Creator.CreatePolyline(geometry, color, 2, "", "my poly on terrain");
line.LineStyle.Width = 1.5; // 15000m (15km)
line.Position.Distance = 600.0; // set max viewing distance in meters
SGWorld.Navigate.FlyTo(line);

// popup = SGWorld.Creator.CreatePopupMessage("onLButtonDown event", "", x, y);
// popup.InnerText = (ret == null) ? "Screen coordinate hit the sky" : "Screen coordinates (" + x + "," + y +
// "):\nTerrain coordinate:\nX: " + ret.Position.X + "\nY: " + ret.Position.Y;
//
// SGWorld.Window.ShowPopup(popup);
//
// return true; // event was processed by the client. return false to allow additional processing of the event.
}
</script>
<style type="text/css">
.window3d {
z-index: -1000;
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 10px;
margin: 0;
}
</style>
</html>

skyline画折现bug代码的更多相关文章

  1. 偶现bug如何处理?

    请先允许我对此类bug进行吐槽,相信做测试的同学都碰见过这种bug! 我们在测试过程中经常会碰见一类很头疼的bug,就是偶现性的bug,所谓偶现性,是相对于必现而言,这类bug有些可以有重现路径,但是 ...

  2. 阿里聚安全·安全周刊】一种秘密窃取数据的新型 Android 木马|iOS 11相机惊现BUG

    本周的七个关键词:  新型 Android 木马丨 TLS 1.3 丨  阿里安全图灵实验室 丨 漏洞感染 Linux 服务器 丨 CPU曝极危漏洞 丨   iOS 11相机BUG 丨R2D2技术 - ...

  3. 佛祖保佑永无BUG代码注释

    // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...

  4. 佛祖保佑 永无bug 代码注释

    // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...

  5. Mapreduce-实现webcount代码

    参考博文:https://blog.csdn.net/qq_41035588/article/details/90514824 首先安装一个Hadoop-Eclipse-Plugin 方便来对于hdf ...

  6. 小程序部分机型上一个诡异的偶现bug

    如上图所示:开始的时候进到下单页面,价格是0,当选中了商品产生价格的时候,生成的价格如 ¥150,这个时候会只露出¥1以及一小半的5,后面的都被遮挡住了. wxml里是这样的写的 <view w ...

  7. V7承保 bug代码

    v7 bug1

  8. 20140312 Excel表格画折现图次坐标轴

    1.struct 是8字节对齐 2.char * a, sizeof(a)=4; char a[]="abcdefg";sizeof(a)=8; 3.内存对其齐

  9. 从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路

    今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现.复现几次之后,终于从logcat中看到了一行可疑的log: A ...

随机推荐

  1. django定义Model中的方法和属性

    #定义一个Model class UserProfile(models.Model): user=models.OneToOneField(User,unique=True) phone=models ...

  2. Python学习---生成器的学习1210

    在Python中,这种一边循环一边计算的机制,称为生成器: 结论: 生成器本质是一个函数,不同于函数的是它生成的是一个对象,不执行函数内的代码 1.1. 列表生成器 列表生成器: 列表是直接生成数字在 ...

  3. IPv4地址结构体sockaddr_in详解

    sockaddr_in结构体定义 struct sockaddr_in { sa_family_t sin_family; //地址族(Address Family) uint16_t sin_por ...

  4. 新增检查sql脚本是否符合ANSI编码格式

    '******************************************************************* '作用:transfer转换文件编码格式 '参数含义:inco ...

  5. July 30th 2017 Week 31st Sunday

    Eternity is not a distance, but a decision. 永恒不是一段距离,而是一种决定. What can be called as eternity? Wealth ...

  6. ios 性能优化概述

    在开发IOS程序的时候,不止是简简单单的把代码堆砌起来,或者说有一个比较好的架构,程序就ok的.还需要在程序性能上进行优化.所谓优化,并非只是简单的优化几个算法,让程序看起来跑的更快.优化是有目标的, ...

  7. 一篇文章详解iOS之AutoResizing、AutoLayout、sizeClass来龙去脉

    前言 iPhone自诞生以来,随着其屏幕尺寸不断的多样化,屏幕适配的技术一直在发展更新.目前,iOS系统版本已经更新到9.3,XCode的最新版本已经是7.3,仅iPhone历史产品的尺寸就已经有4种 ...

  8. ajax上传表单的俩种方式

    1.用h5对象上传表单(图片) var formData = new FormData(); formData.append("authenticity_token", '1212 ...

  9. 4、Android-数据存储方案(使用LitePal操作数据库)

    4.5.使用LitePal操作数据库 4.5.1.LitePal简介 LitePal是一款开源的Android数据库框架 采用了关系映射(ORM)的模式 将经常使用的一些数据库做了封装 是得不用编写S ...

  10. linux 下 chkconfig安装与使用详解

    chkconfig 安装 开始的时候因为Raspbian的原因,系统是不自带chkconfig这个命令的, root@raspberrypi:~# chkconfig-bash: chkconfig: ...