我试图在谷歌地图上绘制许多圆圈(大约 1000 个),在不同的位置和大小,然后将点击事件绑定到它们。但这么多的电话new google.maps.Circle(parameters);
使页面加载缓慢,有时它会永远挂起,所以我想弄清楚是否有更好/更快的方法来完成我想要做的事情。
我看到有一个叫做 kml 图层的东西,但似乎没有任何简单的方法可以用它绘制实心圆圈,并且我不确定是否仍然可以将单击事件绑定到图层中的每个单独的圆圈。
看着圈子解决方法 http://code.google.com/apis/kml/faq.html#circle在 google KML 常见问题解答页面上,我不确定生成包含数千个与此类似的圆圈的 KML 文件是否最终会节省时间。
我也不知道如何生成这个 kml 文件。
最后,考虑到我正在尝试从数据库中提取圆圈,因此我要么必须动态生成 KML 文件以供使用,要么在每次删除圆圈时生成一个新文件,或者从数据库添加,以便文件保持最新。
当然,如果还有其他选择,我洗耳恭听!
在其他人的帮助下,通过Google 地图 API v3 组 https://groups.google.com/d/topic/google-maps-js-api-v3/WaUq7OyGDnU/discussion,我能够实现一个地图叠加层,它可以很好地处理 10,000 个点。诀窍是使用画布平铺覆盖,最大限度地减少 DOM 元素的数量,以换取更简单/更轻量级的 POJsO(普通的旧 JavaScript 对象)。
带鼠标单击事件的演示页面(仅限 API v2):http://notebook.kulchenko.com/maps/datamark http://notebook.kulchenko.com/maps/datamark
带光标交换的演示页面(API v2 和 v3):http://notebook.kulchenko.com/maps/gridmark http://notebook.kulchenko.com/maps/gridmark
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)