Jquery 在传单.js中,如何将贴图聚焦在外部js高亮显示的多边形上?
如何将地图聚焦于某个位置 我的设置基于此帖子:Jquery 在传单.js中,如何将贴图聚焦在外部js高亮显示的多边形上?,jquery,leaflet,Jquery,Leaflet,如何将地图聚焦于某个位置 我的设置基于此帖子: 我在页面的另一层有一个链接列表,并将其设置为允许地图在单击链接时高亮显示某个建筑,但也希望将地图的焦点移动到该建筑 因此,对于此代码: function setHighlight (layer) { // Check if something's highlighted, if so unset highlight if (highlight) { unsetHighlight(highlight); } // Set h
我在页面的另一层有一个链接列表,并将其设置为允许地图在单击链接时高亮显示某个建筑,但也希望将地图的焦点移动到该建筑 因此,对于此代码:
function setHighlight (layer) {
// Check if something's highlighted, if so unset highlight
if (highlight) {
unsetHighlight(highlight);
}
// Set highlight style on layer and store to variable
layer.setStyle(style.highlight);
highlight = layer;
}
我想另外关注调用函数的多边形。例如:
var group = new L.LayerGroup([
new L.Polygon([
[-50, -50], [50, -50], [50, -10], [-50, -10]
], {
'label': 'Polygon 1',
'popup': 'Polygon 1'
}),
new L.Polygon([
[-50, 10], [50, 10], [50, 50], [-50, 50]
], {
'label': 'Polygon 2',
'popup': 'Polygon 2'
})
]).addTo(map);
是否有定义要添加到多边形以指示其位置?或者是否有代码可以将地图聚焦在多边形的中心
谢谢 您可以在
L.Polygon
上调用getBounds
方法,该方法将返回L.LatLngBounds
对象。该对象有一个getCenter
方法,该方法将返回一个L.LatLng
对象,该对象包含多边形的中心坐标。您可以使用L.map
的panTo
方法来平移地图。或者,您可以使用L.LatLngBounds
对象,使用L.Map
的fitBounds
方法缩放和平移多边形:
// Have a polygon
var polygon = new L.Polygon(...).addTo(map)
// Get bounds object
var bounds = polygon.getBounds()
// Fit the map to the polygon bounds
map.fitBounds(bounds)
// Or center on the polygon
var center = bounds.getCenter()
map.panTo(center)
使用类似以下内容的代码:
function setHighlight (layer) {
// Check if something's highlighted, if so unset highlight
if (highlight) {
unsetHighlight(highlight);
}
// Set highlight style on layer and store to variable
layer.setStyle(style.highlight);
// Fit map to layer bounds
var bounds = layer.getBounds();
map.fitBounds(bounds);
highlight = layer;
}
令人惊叹的!再次感谢。一个简单的问题-你能在地图聚焦对象的同时显示标签的代码吗?