对自定义地图的Leaflet.js问题完全和完全感到困惑

时间:2015-05-12 18:50:20

标签: maps leaflet

我完全不知道应该是一件非常简单的事情:显示一个高700像素,宽1162像素的自定义(非地理)地图。我已使用gdal2tiles.py -p raster -z 0-5成功平铺了此地图,以生成256x256像素文件的正确命名子目录。 tilemapresource.xml文件确认了这些维度。 (Y坐标范围从-7000,X从01162.

我算了:

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

L.CRS.Simple.pointToLatLng(northEastPoint,
this.maxZoom));`

其中southWestPoint(0, -700)northEastPoint(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)*`

......然后以类似的方式构建Map

`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"界限"),除非你完全放大。显示屏永远不会填满整个窗口区域。

我发现,如果您手动调整boundsmaxBounds的数字,您实际上可以哄骗整个地图按原样显示。但当然,我需要计算这个。

必须在这里做一些根本错误的事情。但是我看不出它是什么,所以我迫切地(在这一点上)寻求帮助。

0 个答案:

没有答案