如何在 iPhone 应用程序上使用 Google Maps API 在带有红色图钉的填充屏幕上显示大量图钉 - 关于改进用户界面的建议

问题描述 投票:0回答:4

我正在开发一款 iPhone 应用程序,其中涉及在 Google 地图中填充英国各地的许多位置点。

有超过 10,000 个点,当用户滚动时,每个点都会根据纬度/经度位置固定在地图上,每次用户更改缩放量时,都必须重新加载页面上的图钉。

您可以想象每次移动地图时尝试在 iPhone 屏幕上加载 10,000 个图钉,这会花费时间加载并使应用程序无法使用。

以下屏幕截图显示了应用程序的填充情况: http://www.wreckfinder.co.uk/wp-content/uploads/2012/06/photo-8.png

我无法决定以更干净和友好的方式显示数据的好方法。

潜在的解决方案:

该网站对地图区域进行分组,并解释一个区域内有多少个图钉,然后一旦放大到足够大,它就会在地图上填充可供查看的点。

  • 显示最大引脚数 我的另一个想法是在任何时刻最多只显示 500 个引脚。因此,一旦用户放大到少于 500 个图钉的级别,它就会显示它们。但有一个问题,我无法找到一种方法来知道 iPhone 上随时显示有多少个图钉,看来你只能控制图钉数据库,你无法知道用户正在查看哪个缩放级别/位置在地图上。

  • 将数据库分成几个部分 例如,将屏幕分成 9 个框 - 3x3,并将数据库分成每个框约 1000 个引脚,然后当用户单击某个区域时,他们只会显示该区域中的这些引脚,然后必须返回才能查看任何其他引脚。


从上面我理想地想使用 1. 或 2. 2.看起来最简单,

如果您能帮助解释如何实现 2. 或有其他可能的简单解决方案以更好地显示这些引脚,我将不胜感激!

ios iphone google-maps
4个回答
4
投票

将您的引脚分组为 1 个引脚。在不同的缩放级别上取消它们的分组,例如在英国的缩放级别上,您将拥有例如 50 个图钉(例如对于区域)。放大某个区域,将取消其引脚与其子引脚的分组。这是最好的方法。


0
投票

正如 Oleg Danu 所说,您可以对图钉进行分组。这是一篇谈论它的文章。还有一些库作为示例,以及我们在案例中使用的算法(请注意,该算法实现起来并不简单):

http://applidium.com/en/news/too_many_pins_on_your_map/


0
投票

这是我在应用程序中为解决类似问题所做的操作:基本上,不要自动绘制引脚;让用户提出要求。

  1. 用点或目标图标标记地图的中心。
  2. 在地图中心底部“查找10英里内的所有位置”添加按钮
  3. 点击按钮会迭代数据库(最好在后台线程中);如果距离中心 10 英里以内,请放置一个图钉(希望您的数据库可以按纬度/经度排序,这样您就不必遍历所有 10,000 个)

最酷的一点是我会建立在图钉数据库的基础上,因此当用户在地图上移动,然后询问更多位置时,我只需添加到屏幕上已有的内容即可。

摇动以重置引脚。 =)

放大和缩小时,您可以更改英里半径(1、5、10、50),但关键是通过限制图钉数量来释放地图滚动的空间。祝你好运!

编辑:我没有足够的代表来评论 Oleg/Zoleas 方法,但如果你必须显示所有 10,000 点,那么对引脚进行分组绝对是可行的方法。但作为一名用户体验设计师,我会问,对于用户来说,找到靠近当前位置的位置与需要查看所有可能的位置是否更重要。


0
投票

过去,我为此使用了Marker clusterer lib,你可以在以下位置找到它:

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.1.2/examples/simple_example.html

© www.soinside.com 2019 - 2024. All rights reserved.