青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

socketref,再見!高德

https://github.com/adoggie

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

常用鏈接

留言簿(54)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

考慮將shp格式的地圖數(shù)據(jù)發(fā)布到webgis上去的想法有一段時間了,正好有空閑時間便忙碌開來,沒想到期間遇到了諸多的問題

1.開發(fā)工具:
Geoserver,Openlayer,Ext-js,Postgres/Postgis,Python2.6,PIL,TileCache
2.地圖數(shù)據(jù)
我的地圖數(shù)據(jù)是08年的全國地圖,按每個省市分隔開來,每個省市又分了若干個圖層文件,格式是mapinfo的Tab,容量10G
由于沒有全國大比例圖,在偶然的一個機會從網(wǎng)上下載到一份C/S的監(jiān)控系統(tǒng),沒想到安裝目錄內就有一份全國圖,就是比例不高。
3.處理過程
1.Tab轉換成shp: Ogr工具可以完成這兩種格式的轉換,編寫python腳本可以輕易處理完
  在轉換數(shù)據(jù)之前需要提醒的是,發(fā)現(xiàn)在處理多邊形圖層時,這個多邊形圖層并不是簡單的多邊形,也就是那種mapinfo允許存在polygon和pline的圖層,這將導致之后的導入空間數(shù)據(jù)庫的失敗,因為postgis要求每個圖層數(shù)據(jù)類型必須是一致的,不能存在多種類型,所以編寫mapbasic腳本,將這些pline對象從這多邊形圖層中剔去即可。
2.數(shù)據(jù)校驗: 這個過程非常重要,任何提供的的矢量數(shù)據(jù)都有可能存在錯誤數(shù)據(jù),所以第一步必須要修復這些可能存在的錯誤,工具就是ArcGis,使用其工具對每個省市的每個圖層文件進行修復。
3.導入空間數(shù)據(jù)庫: 編寫腳本,將shp數(shù)據(jù)轉成sql文件,此時必須注意空間數(shù)據(jù)庫的字符編碼與sql數(shù)據(jù)字符編碼要吻合或者能夠自動轉換。pg2sq由于轉換成sql時,由于shp數(shù)據(jù)中某些圖層表存儲的字符編碼不統(tǒng)一導致產生的非法的sql數(shù)據(jù),所以必須對這些數(shù)據(jù)進行修正,并采用ultraedit將數(shù)據(jù)進行轉碼成數(shù)據(jù)的字符集類型,我使用的是utf-8.
4.數(shù)據(jù)分離: 由于提供的全國地理數(shù)據(jù)是沒有根據(jù)應用來分層的,所有的道路都合在同一個叫road的圖層內,然后通過屬性來區(qū)分道路的級別,由于我們在控制顯示道路時是需要分層分級別的,所以必須將這些數(shù)據(jù)要分離成不同的道路圖層,道路共10級別(0-9),編寫腳本將每個省市的道路切割成road_?10級道路層(select into即可搞定)。
同樣,除了道路之外還有其他的比如河流,POI對象等都需要進行分割到不同圖層以便更精確的現(xiàn)實控制。
5.配置Geoserver: 數(shù)據(jù)都有了,接下來就是配置繪制引擎了。Geoserver提供WFS,WMS服務,性能一般,由于是java開發(fā)的。不管3721,配置了最新的I5主機,將java虛擬機的內存設置的最大,將postgis的數(shù)據(jù)庫內存也足夠調大。手工添加了1,2個圖層到geoserver,preview一下,ok!
接下來編寫控制這些圖層的SLD了,這些花了好些時間學習和開發(fā)(學習sld對我以前開發(fā)嵌入式地圖引擎風格配置也是一種幫助,之后的嵌入式地圖引擎也全部使用sld進行配置了!)
由于全國數(shù)據(jù)分31個省市,每個省市都配置了21個圖層,所以要人工11加到geoserver還真是很大的問題,不過沒關系,有python在手,然后對geoserver的配置文件研究了一把便寫了腳本將幾百個圖層全加了進去,然后將這些圖層按省市進行分組,再次Preview,ok!
6.Cache Tile生成: 使用過GeoWebCache,發(fā)現(xiàn)很多地方實在不好理解,幸好找到了TileCache,代碼也容易修改,研讀了TileCache代碼之后修改了N處地方,把效率提高了10倍以上。現(xiàn)在的問題在于Tilecache實現(xiàn)了Disk Cache,Memory Cache,但就是沒有DB cache,每個tile將創(chuàng)建一個文件,如果這些文件很小,有的甚至才幾十字節(jié)也要浪費一個文件塊空間,效率不高,如果采用db的話空間就能節(jié)省很多,等以后有了時間自己編寫一個后端為postgres的Tile Cache吧。

Tile Cache生成有些問題要注意:
1. 空白tile: 由于我設置的繪制設置的BBox非常大,所以在繪制的時候有些空白區(qū)域也將提交給geoserver進行處理,這樣浪費了處理時間,同時這些產生的小規(guī)格圖塊大大占據(jù)了磁盤空間,所以修改的代碼將不存儲這些空白tile,僅僅存儲這些tile的文件名稱,而不保存內容
2. tilecache的Resolutions,ZoomLevels,BBox和Openlayers的屬性必須一樣,否則Opnelayers無法顯示正確的tile
3. tile相交檢測: 同樣是空白區(qū)域的繪制,如果每次都提交給geoserver的話,geoserver將根據(jù)配置的layer去相交并繪制一次,這就完全沒有必要的,我的解決方式就是提前將31個省市產生他們的MBR,然后再tile進行提交給geoserver之前,將請求的tile的bbox與這些省市的mbr進行相交測試,只有相交的圖層才送入geoserver繪制
4. 大網(wǎng)格繪制: 每次以256×256的規(guī)格給geoserver繪制全國圖的話效率實在太低,之后修改成2048×2048規(guī)格,整體的繪制效率上升了n倍,繪制完了之后采用split_tile.py將這些大塊切割成256規(guī)格的小塊,必須注意產生的序號

寫得好累



posted on 2010-04-12 11:18 放屁阿狗 閱讀(2196) 評論(2)  編輯 收藏 引用 所屬分類: WebGisWebService

Feedback

# re: 發(fā)布中國圖到web的開發(fā)經(jīng)歷 2010-04-12 15:18 陳梓瀚(vczh)
Visual Studio專業(yè)版輕松搞定  回復  更多評論
  

# re: 發(fā)布中國圖到web的開發(fā)經(jīng)歷 2010-08-26 18:06 myfan0707
很好,我的過程跟你的差不多,但是沒有你進行那么多的優(yōu)化,因為不會Python,我結合mapserver和Openlayers寫的切圖程序,效率不太高,但是靈活一些,下一步會好好優(yōu)化一下,你的文章受益匪淺,  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品99无色码中文字幕| 欧美不卡在线视频| 国产精品久久久久久久7电影| 99精品福利视频| 亚洲精品四区| 国产精品成人va在线观看| 亚洲免费在线观看| 亚洲欧美高清| 国产一区二区中文字幕免费看| 久久人人九九| 六月丁香综合| 中文日韩电影网站| 亚洲欧美久久久| 在线观看一区| 日韩亚洲不卡在线| 国产精品永久免费| 免费高清在线视频一区·| 欧美成人a视频| 午夜精品一区二区三区在线播放| 欧美在线视频免费| 亚洲精品亚洲人成人网| 亚洲性夜色噜噜噜7777| 伊人成人在线视频| aaa亚洲精品一二三区| 国产视频欧美视频| 亚洲黄页视频免费观看| 国产精品国产成人国产三级| 久久一区二区三区超碰国产精品| 欧美精品一区二区久久婷婷| 亚洲欧美色一区| 你懂的成人av| 欧美在线视频不卡| 欧美—级在线免费片| 欧美在线综合视频| 欧美极品aⅴ影院| 久久一区激情| 国产精品日韩欧美大师| 欧美77777| 国产午夜精品久久久| 亚洲老司机av| 亚洲国产精品第一区二区| 亚洲影院色在线观看免费| 亚洲精品123区| 欧美在线免费视频| 亚洲欧美电影在线观看| 欧美成人一区二区三区在线观看| 久久成人18免费网站| 欧美日韩亚洲91| 亚洲高清不卡| 好吊色欧美一区二区三区四区| 一本色道综合亚洲| 亚洲精品午夜| 麻豆国产精品va在线观看不卡| 久久精品观看| 国产农村妇女毛片精品久久麻豆 | 国产一区二区三区在线免费观看| 亚洲人成高清| 亚洲成人中文| 久久精品人人做人人爽| 久久精品国产一区二区三区| 国产精品青草久久久久福利99| 91久久综合| 日韩网站在线观看| 欧美电影在线观看完整版| 欧美成年人在线观看| 激情综合激情| 麻豆国产精品va在线观看不卡| 久久青草欧美一区二区三区| 国产欧美一区二区精品仙草咪 | 美女日韩欧美| 一区二区三区在线观看国产| 欧美在线播放| 女同性一区二区三区人了人一 | 欧美老女人xx| 亚洲国产午夜| 99国产精品99久久久久久粉嫩| 欧美激情成人在线| 亚洲观看高清完整版在线观看| 91久久精品国产91久久性色| 久久亚洲一区二区三区四区| 欧美国产视频一区二区| 亚洲精品自在久久| 欧美日韩激情网| 亚洲一区国产精品| 久久久久国产免费免费| 亚洲国产精品国自产拍av秋霞| 欧美丰满高潮xxxx喷水动漫| 亚洲美女精品久久| 午夜视频在线观看一区二区三区| 国产日产精品一区二区三区四区的观看方式 | 亚洲人精品午夜在线观看| 欧美国产日韩精品免费观看| 日韩一本二本av| 久久精品99国产精品日本| 影音先锋日韩精品| 欧美日本在线视频| 午夜在线a亚洲v天堂网2018| 麻豆国产精品va在线观看不卡| 亚洲精品国产精品国产自| 欧美日韩亚洲综合| 久久国产精品99久久久久久老狼| 欧美激情视频一区二区三区在线播放 | 久久视频这里只有精品| 亚洲级视频在线观看免费1级| 亚洲午夜成aⅴ人片| 国产在线精品成人一区二区三区 | 亚洲视频第一页| 麻豆久久精品| 亚洲综合色网站| 黄色一区二区在线| 欧美色欧美亚洲另类二区| 久久精品视频导航| 一本不卡影院| 欧美高清视频| 久久国产精品99精品国产| 亚洲精品一区二区三区av| 国产精品一级久久久| 欧美国产一区二区| 久久xxxx精品视频| 一区二区三区欧美视频| 欧美高清在线播放| 久久激情一区| 亚洲专区免费| 亚洲精品五月天| 樱桃视频在线观看一区| 国产欧美91| 国产精品久久久久永久免费观看 | 一区二区三区高清在线| 奶水喷射视频一区| 久久精品国产2020观看福利| 中文国产一区| 日韩视频在线一区二区| 在线电影一区| 伊人成人开心激情综合网| 国产精品一区2区| 欧美三级在线播放| 欧美日韩国产综合视频在线观看中文 | 亚洲乱码国产乱码精品精天堂| 免费成人av在线| 久久久亚洲人| 久久久久久9999| 久久精品欧洲| 久久亚洲国产精品日日av夜夜| 亚洲欧美日韩国产一区二区三区 | 99视频在线观看一区三区| 亚洲国产精品久久精品怡红院| 国产主播精品| 韩日欧美一区二区三区| 国语自产偷拍精品视频偷| 国产日韩欧美电影在线观看| 国产欧美日韩另类视频免费观看| 国产精品久久久一区二区| 国产精品日产欧美久久久久| 国产精品色网| 国产视频一区二区在线观看| 国产在线拍揄自揄视频不卡99| 国产日韩欧美综合一区| 好吊妞**欧美| 亚洲精品一区二区三区婷婷月| 亚洲片在线观看| 在线性视频日韩欧美| 亚洲男人第一网站| 久久久久久夜| 欧美大学生性色视频| 亚洲精品激情| 亚洲欧美另类国产| 久久精品国产免费观看| 老司机免费视频久久| 欧美日韩国产成人在线免费 | 欧美中文字幕在线视频| 久久久久久9| 欧美激情第9页| 国产精品美女久久久久av超清 | 国产欧美日本| 91久久精品www人人做人人爽| 日韩香蕉视频| 久久精品国产视频| 亚洲电影在线免费观看| 国产精品99久久99久久久二8 | 亚洲国产高清高潮精品美女| 一区二区三区www| 久久av一区二区| 欧美日韩视频一区二区三区| 国产精品一区一区| 亚洲激情成人在线| 亚洲欧美日韩精品久久亚洲区 | 亚洲最新在线视频| 欧美在线一区二区三区| 欧美久久久久久久久久| 国产一区二区高清| 在线一区二区三区四区五区| 久久精品一区二区三区不卡牛牛| 亚洲国产日韩欧美| 欧美一区二区三区播放老司机 | 欧美黄色片免费观看| 国产精品亚洲产品| 99精品黄色片免费大全| 另类av一区二区| 亚洲影院一区| 欧美三级网页|