免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

TE如何計算地圖的縮放級別

這篇文章主要為大家展示了“TE如何計算地圖的縮放級別”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“TE如何計算地圖的縮放級別”這篇文章吧。

創(chuàng)新互聯(lián)是專業(yè)的洛寧網(wǎng)站建設(shè)公司,洛寧接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行洛寧網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

在二維地圖中,地圖是分級別顯示的,每個級別顯示的地圖要素并不完全相同,在TE的三維地圖中,地形數(shù)據(jù)也是分級別顯示的,但是,TE的API中并沒有提供當前視野是顯示到哪一個級別,只提供SGWorld.Terrain.Levels,獲取三維地形總共有多少級,可能是因為在三維的視野中,不同的地方可能顯示的地圖級別不一樣。

二維地圖的分級切片示例:

TE如何計算地圖的縮放級別

不過,在TE中提供了一個現(xiàn)成的工具,是用來計算TE中加載的矢量圖層,設(shè)置最優(yōu)的塊寬度,矢量按照此設(shè)置,能在TE中達到最優(yōu)的性能效果。

TE如何計算地圖的縮放級別

此功能是一個網(wǎng)頁,嵌入到TE中,通過分析其中的代碼,可以作為模糊的計算TE當前的縮放級別,下邊根據(jù)其中代碼進行簡要分析:

function init()

{

    //在初始化中定位的塊寬度值,可以作為級別的指示,不過,下邊定義的編號順序要反過來,級別越高的塊寬度越小

       realNumLevels = SGWorld.Terrain.Levels;  

addLevel(22, "40075 " + SGLang.i18n("Text7"));

addLevel(21, "20037 " + SGLang.i18n("Text7"));

addLevel(20, "10018 " + SGLang.i18n("Text7"));

addLevel(19, "5009 " + SGLang.i18n("Text7"));

addLevel(18, "2504 " + SGLang.i18n("Text9"));

addLevel(17, "1252 " + SGLang.i18n("Text7"));

addLevel(16, "626 " + SGLang.i18n("Text10"));

addLevel(15, "313 " + SGLang.i18n("Text11"));

addLevel(14, "156 " + SGLang.i18n("Text7"));

addLevel(13, "78 " + SGLang.i18n("Text12"));

addLevel(12, "39 " + SGLang.i18n("Text13"));

addLevel(11, "19 " + SGLang.i18n("Text7"));

addLevel(10, "9783 " + SGLang.i18n("Text14"));

addLevel(9, "4891 " + SGLang.i18n("Text15"));

addLevel(8, "2445 " + SGLang.i18n("Text8"));

addLevel(7, "1222 " + SGLang.i18n("Text16"));

addLevel(6, "611 " + SGLang.i18n("Text17"));

addLevel(5, "305 " + SGLang.i18n("Text8"));

addLevel(4, "152 " + SGLang.i18n("Text18"));

addLevel(3, "76 " + SGLang.i18n("Text19"));

addLevel(2, "38 " + SGLang.i18n("Text8"));

addLevel(1, "19 " + SGLang.i18n("Text8"));

}

function getBestViewPoint() {

//獲得當前屏幕中心的空間坐標,當然視野不能夠指向天空

    var worldPointMid = SGWorld.Window.CenterPixelToWorld();

    if (worldPointMid.Type == 32) {

        alert(SGLang.i18n("Text20"));

        return null;

    }

    return worldPointMid.Position;

}

//根據(jù)位置,計算級別,這是里邊的關(guān)鍵函數(shù),包含下邊的函數(shù)

function getPreferredLevel(viewPoint) 

{

 //計算當前視野的位置和屏幕中心點位置的距離

    var DistCameraToTerrain = SGWorld.Navigate.GetPosition().DistanceTo(viewPoint);

//半程的真正寬度

    var HalfRealWidth = DistCameraToTerrain * Math.tan((53.0 / 2.0) * Math.PI / 180.0);

    var NumBlocksInViewWidth = 4;

  //將塊寬度轉(zhuǎn)換為等級

    var IdealBlockSize = HalfRealWidth * 2.0 / NumBlocksInViewWidth;

    var blockLevel = BlockWidthToLevel(IdealBlockSize);

    var LayerType = -1;

    if (document.all["layertype"][0].checked)

        LayerType = 0; // "points";

    if (document.all["layertype"][1].checked)

        LayerType = 1; //"lines";

    if (document.all["layertype"][2].checked)

        LayerType = 2; //"polygons";

    if (LayerType == -1) 

    {

        alert(SGLang.i18n("Text21"));

        return -1;

    }

    else if (LayerType != 0)

        blockLevel += 1;

    blockLevel = Math.min(blockLevel, fakeNumLevels - 1);

    return blockLevel;

}

//將塊寬度轉(zhuǎn)換為等級

function BlockWidthToLevel(blockWidth) 

{

    var numOfBlocksInLevel = blockWidth / bestLevelWidth;

    var deltaFromBestLevel = Math.log(numOfBlocksInLevel) / Math.log(2.0);

    var L1 = bestLevelWidth * Math.pow(2, Math.floor(deltaFromBestLevel));

    var L2 = bestLevelWidth * Math.pow(2, Math.floor(deltaFromBestLevel + 0.5));

    if (Math.abs(L1 - blockWidth) <= Math.abs(L2 - blockWidth))

        deltaFromBestLevel = Math.floor(deltaFromBestLevel);

    else

        deltaFromBestLevel = Math.ceil(deltaFromBestLevel);

    var blockLevel = Math.floor(fakeNumLevels - 1.0 - deltaFromBestLevel);

    blockLevel = Math.max(0, Math.min(fakeNumLevels - 1, blockLevel));

    return blockLevel;

}

地圖縮放級別的計算結(jié)果,可以幫助在地圖不同縮放的情況下,顯示不同地物或者其他信息。

以上是“TE如何計算地圖的縮放級別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站名稱:TE如何計算地圖的縮放級別
標題路徑:http://m.newbst.com/article24/pdsije.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機全網(wǎng)營銷推廣關(guān)鍵詞優(yōu)化微信公眾號網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名