我知道这个问题之前已经被问过并回答过,但我无法成功地实现这些示例。
我尝试通过 zoomedIn()
加载 map (工作正常),然后按下按钮,使用 zoomedOut()
加载 map
但是,在 zoomedOut()
中,我在 var map = new L.Map('map');< 之后抛出
Map 容器已初始化
/
我原以为上一行 if (map != undefined) { map.remove(); }
就会解决这个问题。
发生了什么事 - 我如何重绘 map ?
<body onLoad="javascript:zoomedIn();">
<form method = "post">
<button type="button" onclick="return zoomedOut()">Zoom Out</button>
<div id="map"</div>
</form>
<script language="javascript">
function zoomedIn() {
var map = new L.Map('map');
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
id: 'mapbox.streets'
}).addTo(map);
var devon = new L.LatLng(50.900958,-3.370846);
map.setView(devon, 7);
}
</script>
<script language="javascript">
function zoomedOut() {
if (map != undefined) { map.remove(); }
var map = new L.Map('map');
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
id: 'mapbox.streets'
}).addTo(map);
var devon = new L.LatLng(50.900958,-3.370846);
map.setView(devon, 1);
}
最佳答案
您可以使用
map.invalidateSize()
这对我有用
关于javascript - 传单-刷新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44745020/