javascript - 单张简单 CRS

标签 javascript leaflet

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

我遇到的第二个问题是 map 不允许我在其右侧放大,它一直向左弹跳。

我在 chrome 和 firefox 中测试了这个,没有在 IE 上打扰,因为它是私有(private)宠物项目,我永远不会在 IE 中使用它。

整个 map 可以在这里看到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);
});

谁能帮我解决这个问题? 提前致谢。

最佳答案

好吧,显然你还需要为平铺层提供 minZoom、maxZoom 和其他参数(continuousWorld、noWrap),然后它才能正常工作

关于javascript - 单张简单 CRS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030441/

相关文章:

javascript - 在 ES6 中以数字作为索引创建 HashMap 的最佳方法

r - 如何在 Shiny 的服务器上加速传单

javascript - 传单标记位置不固定

css - 重写 !important 宽度属性?

javascript - $ "i"+i) 中的变量 ("#show"不工作

javascript - 结果未显示在自动完成中( Angular )

javascript - 将 php 变量中的文本转换为 javascript 函数

传单中的javascript map 如何刷新

javascript - Leaflet.Draw编辑和删除按钮不起作用

javascript - jquery中刷新DataTable插件表