在谷歌地图api v3上处理大量标记
Handling large amounts of markers on google maps api v3
问题基于使用谷歌地图api V3的经验,否则请忽略该问题
问题摘要:
- 这个问题包含了很多信息(关于用例的背景信息),但这个问题只有2个清晰具体的部分
- 第一部分是关于聚类标记在这种情况下使用
- 第二部分是关于加载新标记(分别加载新的标记组)随视图移动时端口
- 关于处理视口中的点(标记),这两个部分仍然是相同的,当你解决一个问题时,你必须考虑第二部分,否则
关于用例和问题描述的信息
想象一下数据库中存储的由纬度和经度定义的千个或数千个点(地方)的应用。我将在地图上标出这些地方。地图将以这种方式划分:
- 地图将被划分为多个区域=地图的中心将被设置为该区域的某个特定纬度和经度(例如该区域的主要城市)-为了简单起见,它将是2个已知坐标
- 区域的数量是<20
- 在每个地区都会有一些路线,每条路线都会由一些点组成(就像你有路线图,从一个城市到另一个城市,路上有一些城镇,例如城镇1、城镇2、城镇3=>所以你有5个点-只有这些点是重要的)
- 区域由<100条路线,每条路线由<100点(=地方/=城镇)(按点了解经纬度坐标)
- 所以我提到了划分我的区域的三种类型:区域>路线>路线中的步伐;这是划分您将能够从我的web应用程序的菜单(=php+html5+css+js)中访问的内容
- 其次,重要的是地点-地点的数量将以数千为单位,最重要的是你选择了一些起点,并想显示最近的地点(例如,区域1->路线2->路线2上的城市4位于纬度x和经度y,我想只显示视口中的相关地点=路线2上城市4周围的地方)
出现了一些问题:(粗体对我来说很重要)
- 将位置存储在数据库(MySQL)中可能不是最好的主意,我会考虑一些按坐标将位置排序到一些组,以便于请求到数据库
- 视口中的位置太多(例如,2号路线上的示例城市4是地图的中心,周围有50或150个位置)-我发现关于聚集地点的一些解析-问题第1部分是如果有人有这方面的经验,如果它足以运行它在普通电脑或手机浏览器上(不想通过视口上标记的曲调)-我读到的内容可以将标记在一起,如果放大则显示更具体的标记
- 问题2是从一个区域移动到另一个区域(或者只是从一个地方移动)——例如,地图的中心点叫做A(=路线图2上的城市4)并且在视图端口中只有loade点,然后随地图移动到右侧,您应该加载新点,因为您的视口changed=问题第2部分是装载的良好实践这意味着——如果你把"10个像素"向右转,为新的地方调用数据库,然后再把"另外10个像素向右转",为另一个新的地方再次调用数据库,这是愚蠢的,因为我只会通过请求数据库、排序等来杀死应用程序
您可以使用边界框来过滤大部分位置。然后使用哈维辛公式。
相关文章:
- 如何在多承诺链中处理谷歌地图API V3事件
- 如何处理'#'在谷歌地图的url中
- 谷歌地图API v3:处理使用限制限制
- 当没有互联网连接时,谷歌地图Java脚本API处理
- 谷歌地图API:强制地图不处理信息框内的点击
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- 如何在javascript中处理带有互联网的谷歌地图api
- 在谷歌地图api v3上处理大量标记
- 在点击处理程序中获取标记:AngularJS+谷歌地图
- 使用 setTimeout() 函数对谷歌地图折线进行动画处理
- 在异步加载谷歌地图时处理网络断开连接
- 谷歌地图处理服务器端
- 如何处理多个谷歌地图标记在完全相同的位置
- 事件处理在JavaScript与谷歌地图API
- 谷歌地图——避免在文档上使用多个处理程序
- 谷歌地图api v2 -如何处理200-300个标记
- GIS谷歌地图处理添加/删除的大型#多边形
- 点击处理程序的谷歌地图v3标记被z索引所破坏
- 使用 JavaScript 打开一个新窗口(谷歌地图),删除以前的事件处理程序
- 如何在茉莉测试框架中处理谷歌地图事件