• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            在實(shí)際的cache生成過(guò)程中遇到大地理范圍和多顯示比例的問(wèn)題時(shí),生成tile cache的耗時(shí)是個(gè)頭大的問(wèn)題,越低比例尺的繪制耗時(shí)將成幾何倍數(shù)上升,如果要繪制1:1000的全國(guó)圖的話,完成工作一臺(tái)主機(jī)可能需要幾個(gè)月的時(shí)間,tilecache默認(rèn)的請(qǐng)求tile規(guī)格是256×256,性能實(shí)在太低,所以提高每次向geoserver請(qǐng)求圖塊的規(guī)格來(lái)稍微提高速度,目前我采用2048×2048。
            但openlayers里面256×256是最佳的cache規(guī)格,所以tilecache產(chǎn)生的tile必須進(jìn)行切割成256規(guī)格

             1 # -*- coding:utf-8 -*-
             2 
             3 #切割大地圖塊到小圖塊,重新索引圖塊文件目錄
             4 
             5 #層名稱/縮放級(jí)別/000/000/列編號(hào)/000/000/行圖塊文件.png
             6 
             7 import sys, traceback,threading,time,struct,os,os.path,shutil,distutils.dir_util,array,base64,zlib
             8 import PIL,Image
             9 
            10 g_layerName='east_china'
            11 
            12 srcTiles={'path':'','size':(1024,1024)}
            13 destTiles={'path':'','size':(256,256)}
            14 
            15 #layerName - 處理的地圖層名,在tilecache.cfg中定義
            16 #scale - 顯示級(jí)別
            17 #tileDir - 圖塊存儲(chǔ)目錄
            18 #destDir - 切割圖塊存儲(chǔ)目錄
            19 #tilesizeFrom - 當(dāng)前圖塊規(guī)格
            20 #tilesizeTo - 目標(biāo)圖塊規(guī)格
            21 #注意: 維度從下至上遞增
            22 #一個(gè)大網(wǎng)格塊列切割成多列,行且歌城多行
            23 def splitTile(layerName,scale,tilesDir,destDir,tilesizeFrom=(1024,1024),tilesizeTo=(256,256)):
            24     xcols = tilesizeFrom[0]/tilesizeTo[0]
            25     xrows = tilesizeFrom[1]/tilesizeTo[1]
            26     
            27     path2 = "%s/%s/%02d/000/000"%(destDir,layerName,scale)
            28     if not os.path.exists(path2):
            29         os.makedirs(path2)
            30     path1 = "%s/%s/%02d/000/000"%(tilesDir,layerName,scale)
            31     cols = map(int,os.listdir(path1))
            32     for col in cols: #1列要切割成n列
            33         path1 = "%s/%s/%02d/000/000/%02d/000/000"%(tilesDir,layerName,scale,col)
            34         for x in range(xcols):
            35             newcol = col*xcols + x
            36             path2 = "%s/%s/%02d/000/000/%02d/000/000"%(destDir,layerName,scale,newcol) #大土快可以切割成多列
            37             if not os.path.exists(path2):
            38                 os.makedirs(path2)
            39             #print path1
            40             files = os.listdir(path1) #list columns
            41             for file in files:
            42                 name,ext = file.split('.')
            43                 path3 = "%s/%s/%02d/000/000/%02d/000/000/%s"%(tilesDir,layerName,scale,col,file) #
            44                 img = Image.open(path3)
            45                 
            46                 rows = range(xrows)
            47                 rows.reverse()                
            48                 for y in rows:                    
            49                     box = (x*tilesizeTo[0],y*tilesizeTo[1],(x+1)*tilesizeTo[0],(y+1)*tilesizeTo[1])
            50                     #print box
            51                     newimg = img.crop(box)
            52                     y = int(name)*xrows + xrows - y -1
            53                     print x,y
            54                     path2 = "%s/%s/%02d/000/000/%02d/000/000/%02d.png"%(destDir,layerName,scale,newcol,y)  #注意產(chǎn)生的文件編號(hào)的數(shù)值寬度
            55                     newimg.save(path2)
            56 
            57 def test(*a,**b):
            58     print len(a),b
            59 #test(1,2,3,k=100)
            60 
            61 if __name__=='__main__':
            62     splitTile('layer1',1,'E:/NewGis/trunk/python/tile1','E:/NewGis/trunk/python/tile2',(512,512),(32,32))



            posted on 2010-04-12 10:32 放屁阿狗 閱讀(747) 評(píng)論(0)  編輯 收藏 引用 所屬分類: WebGis
            大香伊人久久精品一区二区| 欧美午夜精品久久久久久浪潮| 2021久久精品国产99国产精品| 久久综合久久美利坚合众国| 一本大道久久东京热无码AV| 久久综合88熟人妻| 97久久精品国产精品青草| 国产精品一区二区久久| 久久久久亚洲爆乳少妇无| 久久人人爽人人人人爽AV| 2022年国产精品久久久久| 欧美国产成人久久精品| 久久亚洲精品无码AV红樱桃| 精品人妻伦九区久久AAA片69| 久久人妻AV中文字幕| 99久久婷婷国产综合精品草原| 久久热这里只有精品在线观看| 亚洲天堂久久精品| 99蜜桃臀久久久欧美精品网站| 99久久无码一区人妻| 国产成人精品白浆久久69| 2020国产成人久久精品| 精品综合久久久久久88小说| 久久棈精品久久久久久噜噜| 久久综合久久伊人| 色综合久久中文综合网| 亚洲va久久久噜噜噜久久男同| 久久中文字幕人妻熟av女| 国产精品青草久久久久福利99 | 亚洲人成网亚洲欧洲无码久久 | 久久97精品久久久久久久不卡| 久久综合视频网| 欧美色综合久久久久久| 国产成人久久777777| 精品一区二区久久| .精品久久久麻豆国产精品| 精品久久久久久成人AV| 久久99国内精品自在现线| 嫩草伊人久久精品少妇AV| 无码精品久久久久久人妻中字| 狠狠精品久久久无码中文字幕|