【问题标题】:Markers not showing in Google Street View until the camera moves在相机移动之前,标记不会显示在 Google 街景中
【发布时间】:2018-03-23 05:34:36
【问题描述】:

第一次激活街景模式时,标记不会显示在谷歌地图街景全景图中,直到相机移动(位置改变或平移)。甚至Google's own example 在最新的 3.31 API 版本中的多个浏览器(FF、IE、Chrome)以及多台 PC 和 Android 上的 Chome 上都表现出这种行为,因此它看起来像一个错误。

有什么解决方法的想法吗?

以下是重现行为的方法:

  1. 转到"Overlays within Street View" example
  2. 单击“切换街景”按钮。
  3. 观察不存在引脚。
  4. 稍微移动相机,看到咖啡杯别针出现。

这是我用来切换到街景的代码:

var panorama = map.getStreetView();
panorama.setPosition(<position>);
panorama.setPov(<pov>);
panorama.setVisible(true);

一些可以显示标记的方法:

  • 使用街景小人切换到街景
  • 延迟 1 秒后设置 POV有时 可行

一旦标记在街景中显示(例如使用街景小人或相机移动),它们将继续显示,即使在地图和街景模式之间来回切换时也是如此。如果页面被刷新,则返回不显示行为。

我已经尝试过多种浏览器、操作系统和硬件。如果您对我看到不同的结果,请在您的 broswer/OS/cpu?/graphics? 上发表评论会有所帮助。

【问题讨论】:

  • 我在 Google 的示例(使用 Chrome)上没有看到问题。请提供一个 minimal reproducible example 来证明您的问题(在问题本身
  • 感谢@geocodezip 检查。我想知道它是否特定于某些操作系统或其他因素?我检查过Win7、8、10,私人和公司机器。

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


【解决方案1】:

原来this is a bug in Street View, Google is aware of it, and there is a workaround:在setVisible(true)之前调用setZoom(1)

【讨论】:

  • 谢谢!我已经为此摸索了一个小时,试图确定要强制触发哪个panorama 事件——类似于g.m.event.trigger(map, 'zoom_changed'),它往往适用于“卡住”的地图画布......
【解决方案2】:

设置初始全景zoom 选项对我有帮助:

const panorama = map.getStreetView();

panorama.setOptions({
  ...
  zoom: 0,
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多