为啥我的浏览器上的谷歌地图一直在加载? (德尔福 XE6 和安卓)

Posted

技术标签:

【中文标题】为啥我的浏览器上的谷歌地图一直在加载? (德尔福 XE6 和安卓)【英文标题】:Why google maps on my WebBrowser keep loading ? (Delphi XE6 and Android)为什么我的浏览器上的谷歌地图一直在加载? (德尔福 XE6 和安卓) 【发布时间】:2014-08-01 14:46:43 【问题描述】:

我正在使用简单的代码在手机上显示谷歌地图。 添加 TLocationSensor,设置属性 Active 为 True。

添加 LocationChanged 事件处理程序:

procedure TLocationForm.LocationSensor1LocationChanged(Sender: TObject;
  const OldLocation, NewLocation: TLocationCoord2D);
begin
  WebBrowser1.Navigate(
    Format(
      'https://maps.google.com/maps?q=%s,%s',
      [NewLocation.Latitude.ToString, NewLocation.Longitude.ToString]
    )
  );
end;

为什么我的浏览器一直在加载?

【问题讨论】:

因为您的位置不断变化。 触发此事件时,保存您的位置并与之前保存的值进行比较。仅当这些值发生有意义的变化时才加载页面。 @LeonardoHerrera:或者使用计时器?例如,每 1 分钟更新一次。如果与之前的值比较,那么我应该确定之前的值的范围内和范围外? 【参考方案1】:

当位置发生变化时,您会加载整个页面。 相反,您应该加载页面一次,然后通过 javascript 将地图居中。 它应该类似于 map.setCenter() ,您可以在其中传递当前的纬度/经度。

【讨论】:

有趣!这就是为什么每次我拖动地图时,它都会消失(网络浏览器变为空白)并再次开始加载地图的原因。谷歌地图应用程序中没有发生此行为。

以上是关于为啥我的浏览器上的谷歌地图一直在加载? (德尔福 XE6 和安卓)的主要内容,如果未能解决你的问题,请参考以下文章

Ioniq 5 上的谷歌地图搞砸了滑动模式

为啥我的谷歌地图 Lat/Lng 变量不存储任何内容?

为啥我的网站的谷歌地图部分只有在用户删除他/她的 cookie 时才会更新?

Java应用程序中的谷歌地图

保存要离线加载的谷歌地图图像

为啥我的谷歌浏览器无法使用