我在程序中使用传单映射,代码如下:
<style>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
@import url(//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.2/leaflet.css);
#map {
width: 960px;
height: 500px;
}
</style>
<body>
<div id="map"/>
<script type="text/javascript">
var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
osmAttrib = '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
osm = L.tileLayer(osmUrl, {maxZoom: 20, attribution: osmAttrib});
var map = L.map('map').setView([37.5, -115], 6).addLayer(osm);
</body>
但是,我在地图上随机位置看到一些灰色方块,我在javascript控制台中得到以下Leaflet错误代码:
http://a.tile.openstreetmap.org/6/8/25.png 504 (Gateway Timeout)
谁会知道什么是错的以及如何解决它?
解决方法:
OpenStreetMap磁贴服务器出现50x错误是OSM方面的问题,而不是由于您在网站或应用程序中使用(或滥用)OSM磁贴而导致的问题.
从问题的具体时间和日期来看,我会做出一个疯狂的假设,并说你在网络瞬间过载期间击中了一个squid代理服务器,同时从squid 2到squid 3的系统范围升级过去几天一直在进行(请注意下面的屏幕截图是针对OSM服务器持有chef devops recipes的git repo,以及我可以看到OSM服务器的状态非常棒的事实).
请记住,OSM磁贴服务器和代理服务器由(非常棒的)志愿者系统管理员团队维护,虽然他们尽最大努力保持一切正常运行,但OSM Foundation无法保证服务质量.
在https://operations.osmfoundation.org/,特别是https://operations.osmfoundation.org/policies/tiles/了解更多相关信息
Would anyone know what’s wrong and how to solve it?
通常,OSMF服务的暂时故障可以通过以下方式解决:
>有耐心等待系统管理员解决问题.
>潜伏在OFTC#OSM-dev IRC频道(more info here),明确地知道什么是错的,礼貌地问.如果你这样做,不要对那里的人们造成滋扰;它只会减慢速度.
>向OSMF捐款,以增加其运营能力.
>志愿成为OSMF Operations Working Group的一员,或为镜像服务器等提供硬件.
如果您不想受OSMF的限制,那么有几种常见的替代方案:
>使用商业瓷砖供应商(某些供应商列于here)
>托管自己的瓷砖(more information here)
>缓存切片.与大多数商业供应商不同,OSM允许您以任何您想要的方式存储,代理和缓存切片.事实上,只要你采取一点谨慎措施(即不会使你的缓存播种,这会触发批量下载),鼓励任何能减轻OSMF服务器负载的东西.