0

在寻找一个简单的 tileserver 时,我找到了 Tileserver PHP。我尝试按照本 教程进行操作。我将文件托管在我的网络中地址为 192.168.2.22 的 Linux 机器上,当然还有 Apache 和 PHP。我打开http://192.168.2.22/tileserver/时成功了,因为然后我看到了我以 *.mbtiles 格式下载的图块。然后我尝试应用这个版本的 OSM Bright Style。如教程中所述,我改编了文件 style-cdn.json。就我而言,修改后的部分如下所示:

"sources": {
    "openmaptiles": {
        "type": "vector",
        "url": "/tileserver/tileserver.php?/2017-07-03_bangladesh_dhaka.json"
    }
},
"sprite": "/brightstyle/sprite",

如您所见,我使用了相对 URL。我也尝试了绝对地址,但我没有看到任何差异。无论如何,当我将浏览器指向http://192.168.2.22/brightstyle/时,我看不到任何瓷砖出现。我注意到客户端发生错误 - 不幸的是。它显示在我的 Firefox 浏览器的控制台中:错误:“无法解析 URL 对象”。它发生在检索https://api.tiles.mapbox.com/mapbox-gl-js/v1.5.0/mapbox-gl.js之后。来自控制台的更多信息:
ajax.js:169
evented.js:136:20
fire evented.js:136
_request style.js:201。

是什么导致了这个错误,我能做些什么来解决这个问题?

4

1 回答 1

0

经过进一步检查和尝试,确实是相对URL导致了问题。在将 URL 指定为http://192.169.2.22/tileserver/tileserver.php?/2017-07-03_bangladesh_dhaka.json后,我遇到了另一个错误:源层“aerodrome_label”在源“openmaptiles”上不存在,如样式层“airport-label-major”。我通过完全删除 id =“airport-label-major”的层解决了这个问题。最后我解决了诸如“Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at .." 通过在我自己的机器上托管瓷砖。我现在看到瓷砖 ;-)

于 2020-04-03T13:58:06.847 回答