gpt4 book ai didi

javascript - 具有 10.000 多个标记的最佳移动商店定位器解决方案

转载 作者:行者123 更新时间:2023-12-02 19:54:52 25 4
gpt4 key购买 nike

我正在开发一个适用于移动设备 (iPhone) 的商店定位器 Web 应用程序。这个想法是标准的,设备使用其地理定位功能来确定位置,然后应在 map 上显示 5-10 个最近的商店。我的问题本质上是我有太多商店(10.000+)并且还无法创建良好的用户体验。

我意识到这个问题可能有点过分,但我很想听听您对此的想法..

问题范围:

i) 我认为我只能一次加载一些标记,而不是全部加载,我发现很多 <100 个商店查找应用程序都这样做。

ii)它应该是对不良连接友好的:即,谷歌地图不应不必要地放大和缩小,从而导致加载新图 block (如果连接不良,则显示空屏幕)

iii) 它必须以某种方式应对设备 GPS/塔三 Angular 测量可能很慢才能获得足够准确的位置定位的事实(如果在室内或农村地区,通常需要一两分钟)

我尝试过的解决方案:

I) 使用 getCurrentPositition 并从该纬度/经度加载 5 个最近的标记。问题:快照定位不准确,经常加载“错误”的 5 个存储。

II) 使用 watchPosition 直到精度达到 <100m,然后加载最近的 5 个标记。问题:通常需要很长时间才能获得职位(通常> 1 分钟),这不是一个好的用户体验。

III) 与 II 相同,仅在找到准确位置时连续加载标记。问题:每次有更新时,使用 fitbounds() 或 panTo() 都会变得真正的“跳跃”。 IE。如果用户在 map 仍处于“查找位置”模式时试图说单击标记,他们将被 map 更改边界和加载更多标记打断。

IV) 使用 watchPosition 和固定缩放将​​边界拟合到大致位置,并使用 map 中心来获取最近的商店。当 watchPosition 找到更好的近似中心或用户自己平移 map 时,持续加载标记。问题:再次,由于 watchPosition 更新很多,所以有点紧张。没有“您的位置”标记。

背景信息:

我正在使用大部分标准的谷歌方法来创建商店查找器,如下所示:http://code.google.com/intl/sv-SE/apis/maps/articles/phpsqlsearch.html

Google Maps v3 API、MySQL 数据库、Haversine 公式、标记数据的 JSONP 异步加载、无库(jQuery 等)。使用此方法加载 5-10 个新标记通常需要不到 1 秒的时间。

最佳答案

我不知道 watchCurrentPosition 是什么,我假设你的意思是 watchPosition;这是在 HTML5 地理定位规范中定义的。

  • 我不会使用watchPosition为了这。从技术上来说是defined跟踪位置的变化,这并不一定会转化为准确性的提高。虽然我不是移动设备功耗方面的专家,但我敢打赌,启动 GPS 并使其保持开启状态所消耗的电量比获得 1 个真正良好的位置修复所需的电量要多得多,这就是 getCurrentPosition专为。

  • 如果这实际上是 GPS/传感器修复时间问题,我会感到惊讶。使用过很多网站getCurrentPosition找到用户当前的位置,大多数移动设备可以在几秒钟内完成,与 AJAX 调用没有太大区别。我会玩PositionOptions settings设置合理的超时、maxAge,并使用enableHighAccuracy 值。

  • 如果您的 10K 家商店位于 2-5 英里半径内,那么您肯定遇到了难题 :-D,但除此之外,您从 Geolocation API 返回的数据应该能够缩小范围它以合理的准确度对少数商店进行了调查。 Geolocation API 可能不会返回代表您确切街道地址的纬度/经度,但它应该为您提供正确城市内的位置,即使不是街道群。

  • 我会将其分解为两个问题:1 - 通过 Geolocation API 获取可接受的准确位置(纬度、经度)。 2 - 查找位置(经纬度)附近的商店。如果您在第 1 部分或第 2 部分遇到困难,那么提出有针对性的问题会容易得多

关于javascript - 具有 10.000 多个标记的最佳移动商店定位器解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801416/

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