我想出了如何使用the Working with Map Panes tutorial和this Stack Overflow question及其关联的Fiddle在自定义窗格中创建多边形。
我可以在创建多边形后将其切换到另一个(自定义)窗格吗?
我在自定义窗格中创建了一个多边形,如下所示:
// create custom pane
mymap.createPane('polygonView');
var polygonViewPane = mymap.getPane('polygonView');
polygonViewPane.style.zIndex = 300;
// with custom renderer
var myrenderer = L.svg({
pane: polygonViewPane
});
// create polygon in a custom pane (note the `renderer:myrenderer` or `pane:polygonViewPane` both work)
var myPoly = L.polygon([
[51.509, -0.08],
[51.503, -0.06],
[51.51, -0.047]
], {
fillOpacity: 1,
pane: polygonViewPane
}).addTo(mymap);
看起来我应该可以使用以下内容切换窗格:
// changes pane in options.pane, but appearance on the map is same
myPoly.setStyle({pane: polygonViewPaneTop});
// also does not work (command fails without output in console?)
myPoly.setStyle({renderer: myrenderer2});
但这些都不起作用。我可以用polygonViewPane.style.zIndex = 800;
切换整个窗格的zIndex,但是我在主窗格上通常会有多个多边形,我只想把一个放在我所有图层的前面。
https://jsfiddle.net/kbkxf220/
<小时/> 修改 更新了小提琴,结合了IvanSanchez的答案: https://jsfiddle.net/kbkxf220/3/
// THIS WORKS; polygon switches pane and `myPoly.options.pane` shows new pane.
myPoly.removeFrom(mymap);
myPoly.setStyle({pane: polygonViewPaneTop, renderer: myrenderer2});
myPoly.addTo(mymap);
请注意,您需要切换多边形的renderer
以在地图视图上切换窗格(请参阅inspect元素)并切换pane
myPoly.options.pane
以正确显示新窗格。< / p>
答案 0 :(得分:1)