Javascript 传单:瓷砖和负y坐标未对齐
我试图生成一个自定义的非地理地图与传单使用我自己的瓷砖 目前,我使用imagemagick创建了10x10个大小为256x256px的虚拟瓷砖,每个瓷砖具有随机的纯色。 它们被放置在public/map tiles/1/map_x_y.png中,其中x的取值范围为0到9(分别为y) 由于这是一张非地理地图,我注意将crs更改为L.crs.Simple(请参阅): 但是,这会使瓷砖发生轻微移动,从而导致错位: 此外,将获取y坐标为负的分幅,这将导致404d请求,如控制台中所示 这种行为的原因是什么 编辑1:正如IvanSanchez所指出的,不对齐是由缺少的传单.css样式表造成的 我仍然有负坐标的问题。正如建议的那样,我添加了边界(参见上面更新的代码)。意见:Javascript 传单:瓷砖和负y坐标未对齐,javascript,leaflet,tile,Javascript,Leaflet,Tile,我试图生成一个自定义的非地理地图与传单使用我自己的瓷砖 目前,我使用imagemagick创建了10x10个大小为256x256px的虚拟瓷砖,每个瓷砖具有随机的纯色。 它们被放置在public/map tiles/1/map_x_y.png中,其中x的取值范围为0到9(分别为y) 由于这是一张非地理地图,我注意将crs更改为L.crs.Simple(请参阅): 但是,这会使瓷砖发生轻微移动,从而导致错位: 此外,将获取y坐标为负的分幅,这将导致404d请求,如控制台中所示 这种行为的原因是什
- 有边界[[0,0],[25602560]]:不显示全部平铺,空白屏幕李>
- 边界[[-1280,-1280],[1280,1280]]:显示所有分幅,但获取的负分幅(例如(5,-1))导致404
- tileLayer的设置
。未成功,仍获取y为负的磁贴tms:true
- 将tileLayer源路径中的
更改为{y}
。导致{-y}
提供值。我的脚本使用传单1.3.1错误:没有为变量{-y}
L.CRS.Simple
的地图中,默认情况下,所有TileLayer
都有无限的边界
如果希望tillelayer
仅在给定区域请求平铺,请阅读,特别是名为bounds
的tillelayer
选项(继承自GridLayer
选项)。让我引述:
bounds
键入
LatLngBounds
默认值
未定义
如果设置,则磁贴将仅加载到集
LatLngBounds
内
你还提到:
奇怪的是,它试图获取具有负坐标的瓷砖[…]
这并不奇怪,这是设计的行为。负坐标并没有本质上的错误(也不奇怪),负磁贴坐标是有效的,并且
因此,如果您有大小从[0,0]到[10,10]的256px的10x10块瓷砖,您可能需要类似于
L.tileLayer('/map-tiles/map_{x}_{y}.png', {
bounds: [[0, 0], [2560, 2560]]
}).addTo(map);
L.tileLayer('/map-tiles/map_{x}_{y}.png', {
bounds: [[-1280, -1280], [1280, 1280]]
}).addTo(map);
如果您的数据中心是[0,0]点,并且您的分幅范围从[-5,-5]到[5,5],那么您可能需要类似的内容
L.tileLayer('/map-tiles/map_{x}_{y}.png', {
bounds: [[0, 0], [2560, 2560]]
}).addTo(map);
L.tileLayer('/map-tiles/map_{x}_{y}.png', {
bounds: [[-1280, -1280], [1280, 1280]]
}).addTo(map);
问题归结为两个方面:
- 未对齐:缺少传单.css样式表,只需在页面的HTML中链接即可
- 获取的负分幅:对于传单,y轴向下。我希望平铺从左到右、从上到下提取,原点设置在左上角。取而代之的是负y。由于我的tile的名称是map_x_y.png,其中x和y取{0:9}中的值,因此导致404d请求。设置负边界修复了
的问题(注意减号)。1230对应于缩放0倍于一个平铺的像素大小时的平铺数量边界:[[0,0],-12301230]
传单.css
。您能用这些信息更新您的问题吗?也许是一个链接,看看它是如何失败的?e、 喜欢。如果问题是负坐标(y
坐标)(请在解释问题时具体点!!),请一直读到最后。我更新了问题。我一到家就会尝试建立一个链接。