单张简单CRS

时间:2014-06-04 06:24:40

标签: javascript leaflet

我的传单地图插件和简单的crs有问题。当我开始使用它时,我使用默认的CRS和缩放级别0-6,它工作正常。但是我需要使用像素坐标,而不是地理坐标,所以我切换到简单的CRS,这完全适用于那种情况,但是我的地图不会出现,它只是空白页面。我搜索了一些东西,没有找到解决方案,但是 注意到,其他人使用max zoom = 20而不是min zoom = 0作为起点。所以我将地图切换到16-20的缩放级别(我在那时缩小了一些最低的缩放级别)。这让我的地图工作直到我放大。缩放级别16,17和18工作得很好,但是级别19只是模糊18和20是空白的。在检查网络流量时,我发现没有请求缩放级别为19和20的磁贴。向上移动两个级别给我只是空白地图,缩放级别为0-6。此外,使用缩放级别0-20时,也不会请求缩放级别0-10。

我遇到的第二个问题是,地图不会让我放大右侧,它会一直弹到左边。

我在chrome和firefox中对此进行了测试,没有为IE烦恼,因为它的私人宠物项目我永远不会在IE中使用它。

这里可以看到整个地图http://312raf.com/maptest/

'use strict';
var map = L.map('map', {
    minZoom: 16,
    maxZoom: 20,
    maxNativeZoom: 20,
    continuousWorld: true,
    reuseTiles: true,
//  noWrap: false,
    crs: L.CRS.Simple,
    });
    map.setView([0, 0], 18);

var southWest = map.unproject([0, 16384], map.getMaxZoom());
var northEast = map.unproject([12288, 0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));

L.tileLayer('?img&z={z}&x={x}&y={y}', {
    attribution: 'Map data © ???',
}).addTo(map);

var m = {
    x: 200,
    y: 400
}
var m2 = {
    x: 16000,
    y: 12000
}
var marker = L.marker(map.unproject([m.x, m.y], map.getMaxZoom())).addTo(map);
var marker = L.marker(map.unproject([m2.x, m2.y], map.getMaxZoom())).addTo(map);

map.on('click', function(event) {
    console.log(event.latlng);
});

任何人都可以帮我这个吗? Thx提前。

1 个答案:

答案 0 :(得分:5)

好的,显然你需要将minZoom,maxZoom和其他参数(continuousWorld,noWrap)提供给tile图层,然后才能正常工作