数据在每次平移和缩放时加载
Data Loads On Every Pan and Zoom
我正在根据地图的当前边界框(或视口(将JSON数据添加到Google地图中。问题在于,即使是最轻微的平移或缩放也会重绘该数据。我怎样才能做到一旦加载数据,它就不需要重绘(或重新加载(?
这是我正在使用的事件:
google.maps.event.addListener(map, 'idle', function () {
if (map.getZoom() > 12) {
bBox = getBB(); // get current bounding box
$.ajax({
url: '/getdata',
type: 'POST',
data: JSON.stringify(bBox),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (ai) {
addToMap(ai);
}
});
} else {
map.data.forEach(function(feature) {
map.data.remove(feature);
});
}
});
我认为一个双重解决方案会起作用:修改选择要加载到地图的数据的方法,然后在地图处于非活动状态的短暂时间后加载数据。
也许在触发idle
事件和地图重新加载数据之间添加延迟。这可以通过全局setTimeout
来实现,该全局每次地图空闲时都会更新。
var loadDelay = setTimeout(function(){},0);
google.maps.event.addListener(map, 'idle', function(){
clearTimeout(loadDelay);
loadDelay = setTimeout(function(args){old_function(args)}, delayTime); //choose time between idle and load
});
此外,您可以将数据分成正方形区域,并检查地图边界内的哪些区域已被加载,然后不将它们传送到地图上。
编辑
跟踪数据将是一个两步过程。首先是更改单个查询的边界。其次是保留一组已加载的统一大小的区域。像这样:
var loaded = [];
function load(bounds){
var north = bounds.getNorthEast().lat();
var south = bounds.getSouthWest().lat();
var east = bounds.getNorthEast().lng();
var west = bounds.getSouthWest().lng();
for(var lat=parseFloat(south.toFixed(1)); lat<north; lat += 0.1){ //or some other interval
for(var lng=parseFloat(west.toFixed(1)); lng<east; lng += 0.1){
if(!(south+','+west in loaded)){
import(south, west); //function to get and display information
loaded.push(south+','+west);
}
}
}
}
像这样的系统应该加载尚未加载的部分数据。
相关文章:
- 定位D3 SVG画布x/y和加载时的缩放级别
- Google Map JS API-加载地图分幅,但所有图像(标记、缩放控制等)都不加载;t负载2分钟
- 缩放加载的 SVG 并使用捕捉 svg 放大
- 如何设置加载 JSON 图层的最小缩放比例
- 在延迟加载的图像上使用jQuery缩放
- 是否有一个好的图表 API,可以在滚动/缩放时使用 Ajax 延迟加载大型数据集
- 必应地图加载映射() 函数缩放参数
- 如果我在我的页面上使用 CSS 缩放,然后将另一个包含动画的网站加载到 iframe 中,我的页面会变得模糊并且动画行为
- 是否可以加载图像,在内存中缩放它并将其分配为背景图像的 uri
- 缩放后删除自定义地理标记(加载了传单)
- 如何修复页面加载时谷歌地图的缩放
- 加载页面时的缩放效果没有达到预期效果
- D3添加缩放功能到D3 .xml加载元素
- 点击缩略图-加载图像
- 谷歌地图类图像缩放与加载切片的图像在网络上
- 在html加载时缩放文本,并在同一页面的不同位置淡出
- 调整容器大小后重新加载jQuery平滑缩放平移查看器
- 数据在每次平移和缩放时加载
- openlayers 3-加载具有最高缩放级别平铺但在所有缩放级别显示的平铺层
- 缩放上载的图像从画布上的web服务器与php