问题:
很多博主用的OSM地图地址都是:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
在其他代码检查都没问题的情况下
这个地址就是加载不出OSM地图,会报错
原因:
在网页中查看 网络情况后发现,和其他的地图加载方式一样,OSM也是使用了地图分块图层的方式加载的,每个区块都是单独在域名下 a.tile.openstreetmap.org
去获取的。而这个域名在国内网络是无法访问的,导致获取失败,显示空白。
参考文章:
解决国内 OpenStreetMap 地图无法显示的问题 - XHX Blog (xiaohaoxing.github.io)
解决:
定位到是域名的问题,OpenStreetMap 官网 列举出了所有图层数据的服务提供商(免费/商用)域名地址,url 结构大部分为 https://{s}.tile.[DOMAIN]/{z}/{x}/{y}.png
,这和上面的访问失败的结构完全一致,可以断定就是修改这个 URL 即可替换掉图像的获取地址,确保地图的正确加载。
以下为大家提供我找到的能加载地图的地址:
https://tile-a.openstreetmap.fr/hot/{z}/{x}/{y}.png
https://tile-b.openstreetmap.fr/hot/{z}/{x}/{y}.png
https://tile-c.openstreetmap.fr/hot/{z}/{x}/{y}.png
https://tile.openstreetmap.fr/hot/{z}/{x}/{y}.png
http://{s}.tile.osm.org/{z}/{x}/{y}.png
欢迎提供其他地址!!!