【问题标题】:Delay between basemap and vector layer when zooming缩放时底图和矢量图层之间的延迟
【发布时间】:2016-08-10 18:56:05
【问题描述】:

我的 Leaflet 地图功能齐全——太好了。但是,我注意到当我尝试放大或缩小时,我的矢量图层(超过 200 点)会稍微延迟——它几乎看起来“反弹”,而且非常刺耳。我已经在 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 &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>; Basemap &copy; <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/

谢谢!

【问题讨论】:

    标签: javascript maps leaflet gis cartodb


    【解决方案1】:

    Leaflet CSS 和 JS 版本之间可能不匹配。

    另请参阅:https://github.com/Leaflet/Leaflet/issues/4774

    如果这不能解决您的问题,请考虑简化您的实际示例,因为它会使浏览器冻结。

    【讨论】:

    • 非常感谢您的回复!我从 carto.js 切换到 Leaflet 的 CSS/JS 并且两者似乎是相同的版本。仍然有问题,不幸的是。我已将实时示例更新为仅渲染一个点。
    • ... 正如我所说的,我意识到我没有删除不匹配的 CSS 文件的链接。它现在完美运行。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多