Maps 完全被一个带有自定义地图的传单.js问题所迷惑

Maps 完全被一个带有自定义地图的传单.js问题所迷惑,maps,leaflet,Maps,Leaflet,我完全被一件小事弄糊涂了:显示一张700像素高、1162像素宽的自定义(非地理)地图。我使用gdal2tiles.py-p raster-z 0-5成功地平铺了这张地图,以生成一个名称正确的256x256像素文件子目录。tilemapresource.xml文件确认了这些维度。(Y坐标范围从-700到0,X坐标范围从0到1162.) 我计算: `this.maxBounds = new L.LatLngBounds(L.CRS.Simple.pointToLatLng(southWestPoin

我完全被一件小事弄糊涂了:显示一张700像素高、1162像素宽的自定义(非地理)地图。我使用
gdal2tiles.py-p raster-z 0-5
成功地平铺了这张地图,以生成一个名称正确的256x256像素文件子目录。
tilemapresource.xml
文件确认了这些维度。(Y坐标范围从
-700
0
,X坐标范围从
0
1162.

我计算:

`this.maxBounds = new L.LatLngBounds(L.CRS.Simple.pointToLatLng(southWestPoint,
 this.maxZoom),

L.CRS.Simple.pointToLatLng(northEastPoint,
this.maxZoom));`
其中
西南点
(0,-700)
东北点
(1162,0)
。在LatLng中,这与
(0,0)
(21.8,36.3)
相对应,所有这一切再次显得非常正常。(事实上,我可以将这些信息输入到反函数
latLngToPoint
中,并返回原点…)

现在,我使用以下选项构建
TileLayer

`{minZoom: 0, maxZoom: 5, tileSize: 256, detectRetina: true, 
 continuousWorld: true, tms : true, noWrap: true, bounds: *(as above)*`
。。。然后以类似的方式,我构建了
地图

`var mapOptions = { crs : L.CRS.Simple, 
center :    this.tileLayer.centerLatLng, 
maxBounds : *(the TileLayer's "bounds")* 
zoom : 2, 
minZoom : 0, 
maxZoom : 5, 
layers : [*the tile-layer*]};`
        `
。。。我得到的是。。。疯子屏幕中央的一个小框,可以放大和缩小,除非你一直放大,否则永远不会显示整个地图(毫无疑问是因为tileLayer“边界”)。该显示永远不会填充窗口的整个区域

我发现,如果您手动拨弄
边界
最大边界
的数字,实际上您可以引导整个地图按原样显示。但当然,我需要能够计算这个


我肯定是做错了什么事。但是我看不到它是什么,所以我拼命(此时)寻求帮助。

有没有可能把它放到演示网站上?我可以给你发送文件和脚本。我看到的显示由地图下三分之一的平铺组成,在一个大致位于div中心的框中。缩小时,显示会发生变化,但显然它永远不会完成。(但如果在TileLayer上关闭“bounds”(边界),它是完整的,但仍然在错误的位置。)显然,问题的根本原因必须是:与坐标有关。例如:如果我强制一个介于
(0,0)
(75,58)
范围内的“bounds”(和“maxBounds”),那么我将看到预期的地图,大致正确定位。但是,“我编造了这些数字。”我发现如果我“摆弄数字”,我可以逐渐强制(!)显示器正确定位并具有适当大小。没有其他因素。。。中心等。。。没有任何效果。只有“无法解释,无法计算的”数字才能做到这一点,当然“根本不是解决方案”。“传单0.7.3。我已将问题脚本的一份实时副本发布在:问题脚本本身位于这些文件中。只有在问题解决之前,这些文件才会保留在此位置。如果完全缩小,您将看到整个地图显示应该是什么样子的。但您最初看到的只是左下角,显示在页面中间,由于“maxBounds”而无法移动。由于“tileLayer.bounds”而无法看到所有内容。您应该看到的是完整的地图,最初处于缩放级别2,当然位于窗口中的适当位置,并显示地图的所有分幅(但没有其他分幅)。我已经将问题简化为“问题是maxBounds”。如果我在这里手动插入LatLngBounds,我可以使显示具有正确的大小和位置。但这当然不是重点。