我有一个应用程序,它在地图上显示最近的作业,并使用Leafletjs将其精确地显示出来。
使用Leafletjs时,当您想要缩放到用户检测到的位置时,可以调用以下内容:
map.locate({'setView' : true, 'timeout' : 10000, maxZoom: 10});但是,对于某些位置,缩放级别10不包含任何作业点,因此我希望动态设置缩放,以便至少在作业上对用户可见。
我知道我可以侦听locate函数的成功,然后检查以下内容:
map.on('locationfound', function() {
//for marker in markers{
//is point within currently visible bounds
//break on first positive
//else,
//zoom up a level, repeat previous checks
}
}但这是非常低效率的,特别是如果我有很多分数的话。
传单是否有内置的函数/方法来提供关于当前地图视图中各层的信息?
发布于 2013-04-02 07:00:47
如果您在服务器端做了一些事情,您可能可以足够快地进行计算。
您的SQL将类似于(对不起,我是在内存/思考中懒惰,而不是实际尝试)。
SELECT count(*) WHERE (vcsX>>(zoom+8)==userX>>(zoom+8)) AND (vcsY>>(zoom+8)==userY>>(zoom+8));其中vcsX和vcsY是大坐标系中的像素坐标。
https://stackoverflow.com/questions/15755219
复制相似问题