我有自己的 OSM 服务器,然后是我的网络应用程序的 Tomcat 后端。
我使用 leaflet 像这样加载图 block :http://MAP_SERVER_IP/tiles/{z}/{x}/{y}.png
但我希望发出类似这样的请求:http://APP_SERVER/webapp/validation_servlet?z,x,y
这样 'validation_servlet' 可以验证请求,然后使响应成为真实 url 的内容:http://MAP_SERVER_IP/tiles/{z}/{x}/{y}.png
我尝试使用重定向,但传单似乎不遵循重定向。
此代码是 validation_servlet 的响应:
<html><head><meta http-equiv="refresh" content="0; url=http://MAP_SERVER_IP/tiles/'+trim(&x)+'/'+trim(&y)+'/'+trim(&z)+'.png" /></head></html>
其中 &x、&y 和 &z 是从传单请求中收到的参数。该 URL 在浏览器中运行良好,并遵循重定向。但从传单来看,它没有。
此外,我不希望 APP_SERVER 下载磁贴然后提供服务。
目标是“保护”对我的磁贴服务器的访问。因此,不应看到真正的磁贴 URL。
有什么想法吗???
提前致谢!
最佳答案
简单地定义你的 L.TileLayer
就像:
var tiles = L.tileLayer('http://APP_SERVER/webapp/validation_servlet?{z},{x},{y}');
tiles.addTo(map);
您还指出:
The objective is to 'secure' access to my tile server. So the real tile URL should never be seen.
[...]
Also i do not want the APP_SERVER to download the tile to then serve it.
请注意,这两个目标无法同时实现。您可以代理磁贴(从您的 APP_SERVER
获取它并隐藏其来源),或者您重定向到磁贴(为您的 APP_SERVER
节省一些带宽和资源,但发送最终磁贴浏览器的 URL)。
关于java - 传单,OSM : secure tile server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50534021/