介绍
我正在使用传单 api,创建一个使用两个图像叠加层(添加到地图)的应用程序。
问题
当我加载两个图像叠加层以使用固定边界进行映射时。现在我已经放置了控件来切换图像叠加层,即下一个和上一个
我使用了函数 bringToFront(); 在这些控制背后......
但是当我绘制矩形之类的东西并切换图像覆盖时,图像或点上绘制的形状将会丢失,或者我猜它们的外观会丢失。
部分实现不完整的脚本
var map = L.map('map', {
minZoom: 1,
maxZoom: 4,
center: [0, 0],
zoom: 0,
crs: L.CRS.Simple
});
// dimensions of the image
var w = 3200,
h = 1900,
url = 'assets/img/isbimg.jpg';
url1 = 'assets/img/fjmap.png';
// calculate the edges of the image, in coordinate space
var southWest = map.unproject([0, h], map.getMaxZoom() - 1);
var northEast = map.unproject([w, 0], map.getMaxZoom() - 1);
var bounds = new L.LatLngBounds(southWest, northEast);
var featureGroup = L.featureGroup().addTo(map);
var drawControl = new L.Control.Draw({
edit: {
featureGroup: featureGroup
},
draw: {
polygon: true,
polyline: true,
rectangle: true,
circle: true,
marker: true
}
}).addTo(map);
map.on('draw:created', showPolygonArea);
map.on('draw:edited', showPolygonAreaEdited);
// add the image overlay,
// so that it covers the entire map
var iii = L.imageOverlay(url1, bounds);
var jjj = L.imageOverlay(url, bounds);
var ggg = iii.addTo(map);
var hhh = jjj.addTo(map);
jjj.addTo(map);
$('#layerControl').on('click', function layerControl() {
ggg.bringToFront();
return this;
});
$('#layerControl2').on('click', function layerControl2() {
hhh.bringToFront();
return this;
});
我还没有保存产生问题的绘制矢量或图像覆盖状态,有什么方法可以解决这个问题或将 id 设置为图像覆盖?