Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 缩放过程中未正确缩放传单贴图层(圆形、多边形)_Javascript_Leaflet - Fatal编程技术网

Javascript 缩放过程中未正确缩放传单贴图层(圆形、多边形)

Javascript 缩放过程中未正确缩放传单贴图层(圆形、多边形),javascript,leaflet,Javascript,Leaflet,当我放大和缩小时,我不明白为什么radiusmap层(显示的第一个贴图)和IsochromeMap层(显示的第二个贴图)不能正确缩放。第三张地图的图层完全相同,效果很好 下面是代码,用于a)创建圆和多边形层,然后b)将它们添加到半径贴图、等时线贴图,最后是组合贴图 var isochrone = L.polygon(isochronedetails, {color: 'red'}); var radius = L.circle([radiuslat, radiu

当我放大和缩小时,我不明白为什么radiusmap层(显示的第一个贴图)和IsochromeMap层(显示的第二个贴图)不能正确缩放。第三张地图的图层完全相同,效果很好

下面是代码,用于a)创建圆和多边形层,然后b)将它们添加到半径贴图、等时线贴图,最后是组合贴图

        var isochrone = L.polygon(isochronedetails, {color: 'red'});
        var radius = L.circle([radiuslat, radiuslng], {fillColor: circleStyle.color[0], fillOpacity: circleStyle.opacity[0],radius: radiusmeters});
        radius.addTo(radiusmap);
        isochrone.addTo(drivetimemap);
        radius.addTo(combinedmap);
        isochrone.addTo(combinedmap);
创建/初始化三个映射的代码如下:

        radiusmap = L.map('radiusmap').setView([radiuslat, radiuslng],10);
        radiusmap.addControl(new L.Control.Fullscreen());
        drivetimemap = L.map('drivetimemap').setView([isochronelat, isochronelng], 10);
        drivetimemap.addControl(new L.Control.Fullscreen());
        combinedmap = L.map('combinedmap').setView([isochronelat, isochronelng], 10);
        combinedmap.addControl(new L.Control.Fullscreen());
这是一张gif,显示了放大/缩小每张地图时发生的情况。您将看到,当对前两个贴图进行缩放时,圆或多边形将远离原始图形位置。但是,在第三张地图上,它的行为是正确的


我做错了什么?我只希望前两个贴图的行为与第三个贴图类似。:-)

不要将图层(即等时线和半径)添加到多个贴图中,而是为每个单独的贴图创建不同的图层(可能具有相同的参数)


为了简单起见,传单假设将图层添加到地图时,它只属于该地图。

太棒了!我可以问一下……你是怎么知道的:为了简单起见,传单假设当一个图层被添加到地图上时,它只属于该地图。这就是传单源代码的工作原理,但不幸的是,没有关于这个假设/限制的明确文档。