缩放时底图和矢量图层之间的延迟
Delay between basemap and vector layer when zooming
我的 Leaflet 地图功能完备 -- 太棒了。但是,我注意到每当我尝试放大或缩小时,我的矢量图层(超过 200 点)都会稍微延迟——它几乎看起来 "bounce,",而且非常不和谐。我已经在 Firefox 和 Chrome 中试过了,它在两种浏览器中的效果都一样。我知道要渲染的数据很多,但我想知道我是否可以做些什么来解决这个棘手的问题?
这是我到目前为止写的少量 JS(HTML 大部分只是一个空白 div,id 为 "milwaukee_map"):
// load the initial map!
var theMap = L.map('milwaukee_map', {
minZoom: 11,
maxZoom: 19
})
.setView([43.041475, -87.923975], // zoom to Milwaukee County by default
11) // set initial zoom level
// add basemap tiles
L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
attribution: 'Basemap Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>; Basemap © <a href="http://cartodb.com/attributions">CARTO</a>',
subdomains: 'abcd'
}).addTo(theMap);
// load stops from carto
function getStops() {
$.getJSON('https://benjamin-schroeder.carto.com/api/v2/sql?format=GeoJSON&q=SELECT the_geom, stop_name FROM mcts_stops_feb_16', function(data){
stopsLayer = L.geoJson(data, {
pointToLayer: function(feature, latlng) {
return new L.CircleMarker(latlng, {radius: 2, fillOpacity: 0.85});
}
})
.addTo(theMap);
})
}
getStops();
实例:https://pantherfile.uwm.edu/schro333/public/mcts_map/
谢谢!
Leaflet CSS 和 JS 版本之间可能不匹配。
另请参阅:https://github.com/Leaflet/Leaflet/issues/4774
如果这不能解决您的问题,请考虑简化您的实际示例,因为它会以某种方式使浏览器冻结。
我的 Leaflet 地图功能完备 -- 太棒了。但是,我注意到每当我尝试放大或缩小时,我的矢量图层(超过 200 点)都会稍微延迟——它几乎看起来 "bounce,",而且非常不和谐。我已经在 Firefox 和 Chrome 中试过了,它在两种浏览器中的效果都一样。我知道要渲染的数据很多,但我想知道我是否可以做些什么来解决这个棘手的问题?
这是我到目前为止写的少量 JS(HTML 大部分只是一个空白 div,id 为 "milwaukee_map"):
// load the initial map!
var theMap = L.map('milwaukee_map', {
minZoom: 11,
maxZoom: 19
})
.setView([43.041475, -87.923975], // zoom to Milwaukee County by default
11) // set initial zoom level
// add basemap tiles
L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
attribution: 'Basemap Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>; Basemap © <a href="http://cartodb.com/attributions">CARTO</a>',
subdomains: 'abcd'
}).addTo(theMap);
// load stops from carto
function getStops() {
$.getJSON('https://benjamin-schroeder.carto.com/api/v2/sql?format=GeoJSON&q=SELECT the_geom, stop_name FROM mcts_stops_feb_16', function(data){
stopsLayer = L.geoJson(data, {
pointToLayer: function(feature, latlng) {
return new L.CircleMarker(latlng, {radius: 2, fillOpacity: 0.85});
}
})
.addTo(theMap);
})
}
getStops();
实例:https://pantherfile.uwm.edu/schro333/public/mcts_map/
谢谢!
Leaflet CSS 和 JS 版本之间可能不匹配。
另请参阅:https://github.com/Leaflet/Leaflet/issues/4774
如果这不能解决您的问题,请考虑简化您的实际示例,因为它会以某种方式使浏览器冻结。