我一直在寻找很多方法来最近在地图上显示大量标记,并认为Google必须有一个非常有效的解决方案来解决这个问题(除了拥有大量服务器!)。如果您在地图搜索栏中输入“住宿”,则地图显示大约100个左右的点(与缩放级别无关),并且放大某个区域时出现更多点。但是,必须有数百万个点属于“住宿”搜索标签,因此会出现相当多的标记选择。maps.google.com如何有效地选择和呈现搜索结果标记?
我猜他们必须使用getBounds方法过滤标记,当用户放大/移动,然后可能是从这些标记随机选择。然而,这听起来可能效率低下,因为整个数据库必须被拖拽才能选择落入地图边界内的那些点。它是否具有巨大的计算能力,使Google地图如此之快(大部分时间......)?或者有没有一种更有效的方法来做这种类型的数据库查询而不是上面详述的方法?
我正在构建一个Rails/Google地图应用程序,我希望能够扩展到一百多万个点 - 我绝对不想一次显示所有要点,但我想开发一种快速的搜索算法,对服务器来说并不是很重要,它允许在任何时候在地图上呈现(相对较小的)点的选择,这与谷歌的做法类似。任何建议将不胜感激!
感谢关于空间数据库的提示,这绝对是值得思考的 - 有一个gem,GeoRuby,它允许rails轻松地与这种数据库进行交互。 – Budgie 2010-08-20 08:33:53