无法使用XYZ瓷砖对中地图

时间:2019-06-23 05:04:44

标签: reactjs openlayers openlayers-5

我使用gdal2tiles命令行工具将图像切成XYZ磁贴。地图加载正常,所有预期的图块都处于工作状态,但是存在两个问题(可能是相关的):

  1. {z} / {x} / {y}格式正在向一堆不存在的图块发出请求。
  2. 我似乎无法准确地将地图或其范围居中(以防止平移地图)。

我正在尝试先使用fit()以使地图完全可见,然后再通过on('change:resolution')更新范围以防止平移超出地图边缘(目前无法正常工作)< / p>

该代码大约有200行,因此我将在下面保留链接

我尝试设置JSFiddle,但是无法正常工作。或者,您可以查看实时演示或克隆存储库,这应该可以正常工作。

现场演示:https://dndiaries.netlify.com/faerun 回购:https://gitlab.com/heartofcode/swamptrek

没有错误消息,但是“中心”位于渲染地图的中心

1 个答案:

答案 0 :(得分:0)

您的地图设置为浏览器窗口宽度和高度的100%。您正在调用不存在的图块,因为它试图对整个地图进行图块化并尝试获取已删除的图块。尝试在图层上设置一个范围,而不是在地图上设置一个范围,以使其不在所需位置之外调用。 您也无法将占据整个空间的东西(地图)居中。将图块放置在应该放置的位置,您可以调整地图的高度和宽度以适合它们,然后将其居中。或在'change:resolution'上更改地图div大小而不更改范围,您还可以更新缩放级别以确保更改大小时地图没有空白。 如果您不希望用户四处移动,也可以关闭(设置为false)交互和控件(例如dragPan和zoom)。