【问题标题】:How do I get the latlng (gps) coordinates of the magnification pane in using the Street View api?如何使用 Street View api 获取放大窗格的 latlng (gps) 坐标?
【发布时间】:2013-01-15 17:37:39
【问题描述】:

我不确定这是否可能;但我想做的是在谷歌的街景中获取放大窗格的gps坐标(我认为这是它的名字?它通常由一个半透明的矩形或椭圆形表示,请参见下图):

http://tinypic.com/r/5jy8n6/6

面板在鼠标移动时围绕街景移动,并在建筑物、墙壁或道路旁边呈现。

理想情况下,我想绑定到鼠标移动事件并获取放大窗格的位置,但在阅读了 API 之后,这似乎是不可能的。

我可以通过在全景图上为“position_changed”事件添加监听器来从全景图中获取纬度和经度坐标:

 google.maps.event.addListener(panorama, 'position_changed', function(  ) {
     console.log( 'position', panorama.getPosition() );
 });

我也可以通过听pov_changed获取航向和俯仰信息:

google.maps.event.addListener(panorama, 'pov_changed', function( ) {

    console.log( 'pov', panorama.getPov() );
});

我正在使用 Google Maps Javascript API V3。

感谢您的宝贵时间。

更新 ====> 如果我查看全景生成的源并打开 SVG 对象,我可以看到两个在鼠标移动时被修改的对象。一个 Ellipse 对象,代表道路上的面板:

<ellipse fill="white" fill-rule="evenodd" visibility="hidden" fill-opacity="0.5" cx="658" cy="223" rx="30" ry="5"></ellipse>

还有一个路径对象,它代表建筑物或墙上的面板。

<path fill="white" fill-rule="evenodd" visibility="hidden" fill-opacity="0.5" d="M400 53 L402 -22 L299 -65 L296 24 Z"></path>

所以我可能会找到窗格的尺寸,但不确定是否可以使用此信息从用户当前位置找到窗格的位置。

【问题讨论】:

  • 这两个事件不使用的原因是什么?
  • @SalmanA,因为事件没有给出我需要的位置。对不起,我不认为我解释得很好。我添加了一张图片来帮助澄清:tinypic.com/r/5jy8n6/6 我想获取图像中半透明矩形的位置。矩形随鼠标移动并将自身固定在建筑物和道路上。所以,基本上在那个例子中,我想知道墙壁的 GPS 位置。

标签: javascript google-maps-api-3 google-street-view


【解决方案1】:

您无法获得有关此窗格的任何详细信息。

此窗格是 flash-layer 的一部分,只要不暴露窗格的任何详细信息,您将无法获取该位置。 鼠标事件在这里没有帮助,因为您不知道窗格应用到的对象的距离。

【讨论】:

  • 我觉得不是flash层?如果我查看全景图生成的源代码,并打开创建的 svg,我可以看到鼠标移动时绘制的两个对象:一个用于道路上的圆圈的 eclipse obj 和一个用于墙壁和建筑物的路径 obj。所以我可以计算出窗格的尺寸。只是不是它的位置。
  • 对我来说,它是完整地图上方的 Flash 对象,已在 FF、Chrome、Opera 中签入
猜你喜欢
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
相关资源
最近更新 更多