如何使用 angular 中的 Leaflet 打开街道地图将地图中心位置更改为顶部
How to change the map center position to top place using Leaflet open street map in angular
在我的 angular 应用程序中,我创建了传单地图,并在传单地图上以重叠的方式创建了另外两个面板数据,并且在地图上创建了 5 公里半径的圆。但我的问题是面板覆盖了传单地图上的圆圈
所以我的要求是移动地图的中心位置,即圆圈到顶部位置(顶部中间),这样只有圆圈可见,否则它会被地图上的面板覆盖。
component.ts
map = L.map('map').setView([13.0827, 80.2707], 12);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
L.control.zoom({
position: 'bottomright',
}).addTo(map);
我是传单地图的新手,谁能帮我解决这个问题。
您可以让地图适合圆圈边界,例如:
var circle = L.circle() // Your circle
map.fitBounds(circle.getBounds())
要在地图左侧显示圆圈:
map.setView(circle.getLatLng(),map.getZoom(),{animate: false})
sw = map.getBounds().getSouthWest();
psw = map.latLngToContainerPoint(sw);
center = map.getCenter();
pc = map.latLngToContainerPoint(center);
dis = pc.x - psw.x;
middle = dis / 2
pnewCenter = L.point(pc.x+middle,pc.y)
center2 = map.containerPointToLatLng(pnewCenter);
map.setView(center2,map.getZoom(),{animate: true})
在我的 angular 应用程序中,我创建了传单地图,并在传单地图上以重叠的方式创建了另外两个面板数据,并且在地图上创建了 5 公里半径的圆。但我的问题是面板覆盖了传单地图上的圆圈
所以我的要求是移动地图的中心位置,即圆圈到顶部位置(顶部中间),这样只有圆圈可见,否则它会被地图上的面板覆盖。
component.ts
map = L.map('map').setView([13.0827, 80.2707], 12);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
L.control.zoom({
position: 'bottomright',
}).addTo(map);
我是传单地图的新手,谁能帮我解决这个问题。
您可以让地图适合圆圈边界,例如:
var circle = L.circle() // Your circle
map.fitBounds(circle.getBounds())
要在地图左侧显示圆圈:
map.setView(circle.getLatLng(),map.getZoom(),{animate: false})
sw = map.getBounds().getSouthWest();
psw = map.latLngToContainerPoint(sw);
center = map.getCenter();
pc = map.latLngToContainerPoint(center);
dis = pc.x - psw.x;
middle = dis / 2
pnewCenter = L.point(pc.x+middle,pc.y)
center2 = map.containerPointToLatLng(pnewCenter);
map.setView(center2,map.getZoom(),{animate: true})