gpt4 book ai didi

javascript - 如何使用 Google Maps API 避免调用服务器获取重复数据

转载 作者:行者123 更新时间:2023-12-03 08:02:43 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以滚动 Google map 来查看使用 Google map API 放置在 map 上的各种标记和其他数据。每当用户发出 dragend 事件时,我都会向服务器发送请求,并向其传递 map 中心的当前纬度/经度以及半径值。我的服务器获取这些纬度、经度和半径值并查询数据库以查看是否有任何应在 map 上显示的相关对象。如果有,它们将返回到浏览器,并呈现在 map 上。

我试图避免每次用户拖动 map 时都调用我的服务器。基本上,如果要进行的调用不包含任何新点,则不应进行调用。

我试图在下图中直观地展示我的意思:

enter image description here

填充的蓝色圆圈表示由于用户将 map 定位在每个圆圈的中心而已经被查询的区域。当他们执行此操作时,将调用服务器,并返回实心蓝色圆圈覆盖的区域的数据。

当他们在 map 上拖动时,所有这些蓝色区域的并集代表已从服务器检索数据的位置。现在,红色小圆圈代表一个位置,如果用户要定位 map ,我将不想调用服务器来加载新数据。这是因为由该中心点和半径组成的整个区域已经被检索;它已经是蓝色区域的一部分。

另一方面,绿色位置表示我想要调用服务器获取数据的位置,因为由中心点和半径组成的某些区域超出了蓝色区域。

我想知道是否有人有解决这个问题的方法。这把我难住了。

最佳答案

解决方案很简单。

1)用户拖动东西或其他东西。在后端,将该位置存储在 session 或数据库中。像往常一样加载响应。

2) 用户再次执行任何操作。这次,在后端检查之前保存的 session 位置,计算新位置与上次通话期间保存的位置之间的距离。您可以使用Google's API for this 。如果距离小于所使用的半径,您就知道会有一些重叠,您可以在将数据返回到前端之前过滤掉这些结果。

这将减少 PHP 只给出新结果的结果。如果您想避免进行 ajax 调用,唯一的方法是将整个数据库加载到 javascript 中。否则您如何期望 javascript 知道是否有行。

关于javascript - 如何使用 Google Maps API 避免调用服务器获取重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com