Javascript 谷歌地球插件点击3D建筑事件
我一直在四处寻找,还没有找到答案。是否可以使用google earth插件的javascript向3D建筑层或自定义3D模型添加单击事件 我的最终目标是能够让用户选择一个3d建筑,并显示一个关于该建筑细节的信息气泡。这不是谷歌用3D模型的信息显示的默认气泡 理想情况下,可以使用3D建筑层,而不是手动加载模型,尽管我对这一点不抱太大希望,因此可以通过手动上传3D模型来实现 我正在使用google maps api V3和来激活插件Javascript 谷歌地球插件点击3D建筑事件,javascript,3d,google-earth,google-earth-plugin,Javascript,3d,Google Earth,Google Earth Plugin,我一直在四处寻找,还没有找到答案。是否可以使用google earth插件的javascript向3D建筑层或自定义3D模型添加单击事件 我的最终目标是能够让用户选择一个3d建筑,并显示一个关于该建筑细节的信息气泡。这不是谷歌用3D模型的信息显示的默认气泡 理想情况下,可以使用3D建筑层,而不是手动加载模型,尽管我对这一点不抱太大希望,因此可以通过手动上传3D模型来实现 我正在使用google maps api V3和来激活插件 提前感谢您的回答。我想我第一次读得太多了。仔细观察后发现,这似乎仍
提前感谢您的回答。我想我第一次读得太多了。仔细观察后发现,这似乎仍然不可能(以那种简单的方式) 。。。鼠标事件可以附加到插件中的大多数几何图形(3D模型除外) 也许可以通过实现一个自定义交叉点“侦听器”来实现这一点 //编辑: 也许这不是洞的故事。更多的研究表明,对某些几何图形进行hittest是可能的。
ge接口
有一个名为hitTest(…)
不幸的是,GEHitTestModeEnum
仅适用于GEPlugin.HIT\u TEST\u GLOBE GEPlugin.HIT\u TEST\u地形
GEPlugin.HIT_TEST_建筑物
因此,您可以对建筑物进行命中测试,但不能对自定义三维模型进行命中测试
单击自定义三维模型的一个稍微有用的解决方案可以是本节中描述的使用其他“可事件的”不可见位置标记来检测单击的解决方案
litte测试代码
//编辑2:
我在当前项目中使用的解决方案听起来像:
为每个“接收自定义三维模型的单击事件”创建一个边界框
多边形可以接收单击事件
google.earth.addEventListener(polygonPlacemark, 'click', function(event) {
alert('placemark bounding box clicked');
});
不幸的是,简单地增加接缝是不起作用的。无法在文档中找到讨论此问题的正确位置google.earth.addEventListener(placemark,'click',function(event){alert('click');});如果你能在文件或任何其他有效来源中得到解决,或得到关于这一点的真实陈述,我将不胜感激:)我发现有人认为这是不可能的,但从08年开始,在那篇文章中勾选的问题很遗憾是不可用的。。也许他们增加了这个功能
GEHitTestResult GEView.hitTest( float x,
KmlUnitsEnum xUnits,
float y,
KmlUnitsEnum yUnits,
GEHitTestModeEnum mode
)
google.earth.addEventListener(polygonPlacemark, 'click', function(event) {
alert('placemark bounding box clicked');
});