我有一个包含地理地图的页面,安装在'/map/#{zoom}/#{lat}/#{lon}'
上。地图在'/map/'
处可见,但在'/map/z/x/y'
处也可以在不同位置居中显示。如果未设置zoom
,lat
和lon
的全部内容,则会在默认位置显示地图。
平移地图后,使用javascript:history.replaceState({}, "", "/map/z/x/y")
但是,当在“/ map”访问地图时,所有wicket生成的网址都与'/map'
相关,例如主页引用'..'
。但是在平移后,主页的相对网址不正确,实际上指向/map/z/x
,再次显示地图。
有没有办法强制Wicket生成绝对网址,还是有办法告知Wicket当前网址已更改?
修改
问题也以不同的方式发生。我有一个由/z/x/y
坐标定义的预定义概览列表。当z
相等时,创建的链接相对于z
。但是,当缩放更改时,链接概述的新z
值不正确。
我有两个预定义的概述:A = 10/33/44
和B = 10/66/77
。点击A
后,B
链接的网址将更改为../../66/77
。平移并缩放地图后,(浏览器)URL将更改为4/12/3
。点击B
的链接后,生成的网址为4/66/77
答案 0 :(得分:0)
另一种选择是从头开始更新网址!
在页面构造函数中,如果某些参数没有值,则设置默认值:
public MapPage(PageParameters params) {
super(params); // this is important!
String lon = params.get("lon").toString();
if (lon == null) params.set("lon", DEFAULT_LON);
// same for lan and zoom
}
这样Wicket会在创建任何链接时使用默认值,实际上会重定向到/map/x/y/z
。