首頁 / 浏覽問題 / WebGIS / 問題詳情
非标準比例下 标簽文字的(de)顯示問題
50EXP 2024年08月27日

在(zài) iclient-leaflet 中,創建地(dì / de)圖組件時(shí)使用了(le/liǎo)
zoomSnap: 0.5,

zoomDelta: 0.5,
這(zhè)2個(gè)參數,在(zài)縮放地(dì / de)圖時(shí),在(zài)非整數的(de)情況下,它的(de)标簽顯示變得不(bù)正常了(le/liǎo)。

如下所示:

請問這(zhè)種問題該如何解決呢?

1個(gè)回答

您好,leaflet以(yǐ)非整數倍縮放時(shí),它10.5和(hé / huò)11出(chū)圖的(de)瓦片實際是(shì)同樣的(de)scale,如果您希望以(yǐ)比較小的(de)倍數縮放,可以(yǐ)單獨計算resolutions,比如第10層是(shì),scale[0] * 2^10,那10.5時(shí)的(de)分辨率就(jiù)是(shì) scale[0] * 2 ^10.5(2的(de)10.5次方),這(zhè)樣可以(yǐ)精确加載10.5層的(de)瓦片
1,191EXP 2024年08月28日
您好,單獨計算resolutions應該怎麽做呢?是(shì)在(zài)哪個(gè)地(dì / de)方設置

将resolutions添加到(dào)crs中,然後再将crs添加到(dào)map中,計算方式:

var res = [];
for (var i = 0; i < 10; i += 0.5) {
  if (i % 1 != 0)
    res.push( 156543.03392804097 / (Math.pow(2, i-0.5)) / 1.4142135); // 根号2
  else 
    res.push( 156543.03392804097 / (Math.pow(2, i)));
}
var crs = new L.supermap.Proj.CRS("EPSG:3857",
                {
                  origin: [-2.0037508342789244E7, 2.0037508342789244E7],
                  resolutions: res,
                  bounds: L.bounds([-2.0037508342789244E7, -2.0037508342789244E7], [2.0037508342789244E7, 2.0037508342789244E7])
                });

...