2013-05-01 92 views
1

是否有可能有互动元素(如多边形响应拖动,点击事件)在谷歌地球(我特别需要谷歌地球,谷歌不是地球插件!) 文档似乎并不有帮助因为大部分活动都已经转向该插件,但有关项目正在使用Google地球。我知道我已经完全进入JavaScript和气球内的WebKit,但是我可以使用JavaScript访问KML元素,并指定事件监听器呢?谷歌地球互动元素

UPDATE: 比方说,我想用谷歌地球来控制网络摄像头。 KML将显示相机视场的区域。我希望能够拖动该区域,让JavaScript处理拖动并调用可以相应地旋转网络摄像机的Web服务。

+0

你能等互动行为,阐述要回应,除了响应点击或谷歌地球拖动事件? – JasonM1 2013-05-01 15:34:40

回答

1

直接回应在谷歌地球的多边形点击拖动事件(使用GE的API之外,插件)不为您提供太多的选择。使用GE API很简单,但在Google地球客户端中,您无法直接响应移动或拖动地标。此外,一旦地标发送到客户端,它的位置(如果移动)不能通过客户端JavaScript访问并发送回服务器。

有许多互动技术的KML和谷歌地球使用,其中一些可能与你想要做什么工作。

  • 您可以在说明框提供控制或配置选项HTML表单自定义显示或更改网络摄像头的位置:

    对于摄像头的控制,你可以展示上,下,左,右按键(甚至可以缩放或倾斜),然后点击任何调用后端控制器来移动摄像头的按钮。操作的输出可以使用NetworkLinkControl来更新已经在Google地球中加载的KML。

  • 您可以考虑通过后端KML生成服务指定viewFormat的NetworkLinks。您可以指定一个网络链接刷新和汇报与如果视图改变视图/摄像机的信息和/或其他客户端参数的后端服务。您可以响应查看更改(放大/缩小,平移,倾斜等)并相应地更改状态。如果您使用onStop进一步限制NetworkLink更新,则可以防止用户在移动过程中进行增量更新,并且只有在用户停止移动后才发送刷新更新(推测用户正在查看内容)。

的viewFormat会给您可以访问谷歌地球以下客户端属性:

[lookatLon], [lookatLat], [lookatRange], [lookatTilt], [lookatHeading] 
[lookatTerrainLon], [lookatTerrainLat], [lookatTerrainAlt] 
[cameraLon], [cameraLat], [cameraAlt] 
[horizFov], [vertFov] 
[horizPixels], [vertPixels] 
[terrainEnabled] 
+0

假设我想使用Google地球来控制网络摄像头。 KML将显示相机视场的区域。我希望能够拖动该区域,让JavaScript处理拖动并调用可以相应地旋转网络摄像机的Web服务。 – 2013-05-01 15:59:27

+0

相机区域是由地标上的显式区域还是多边形几何的边界表示的? GE不允许用户编辑区域,多边形可以有非正方形形状,因此终端用户如何“拖动”该区域非常重要。您可以在地图上的摄像头视图中心点放置一个图标,并且只需将用户移动到新的位置即可。 – JasonM1 2013-05-01 20:03:47

+0

我在想象一个表示视野的多边形。但是任何一种可拖动的视觉元素都将朝着正确的方向迈出一步? – 2013-05-01 21:55:34