0.Ubuntu16.04下OpenStreetMap安裝指南

以下資料形成參考:http://blog.csdn.net/goldenhawking/article/details/7952303

GIS相關(guān)的開(kāi)源軟件和Ubuntu結(jié)合的更好狰住,很多依賴都可以直接從源安裝惧笛,在CentOS7上折騰確實(shí)是艱難的決定壶辜。
更進(jìn)一步,OSGEO這個(gè)組織對(duì)Lubuntu16.04做了進(jìn)一步的改造铛漓,直接推出安裝幾乎所有GIS相關(guān)軟件的ISO鏡像溯香,真是我這種初學(xué)者的好福利啊。詳情請(qǐng)看'http://www.osgeo.org/'

1.系統(tǒng)部署

絕大部分軟件都已經(jīng)是安裝好的狀態(tài)浓恶,少部分需要手動(dòng)安裝玫坛。

1.1 安裝系統(tǒng)依賴

sudo apt-get update  
sudo apt-get dist-upgrade  
sudo apt-get install  libmapnik-dev libmapnik3.0 apache2-dev openssh-server lrzsz p7zip-full ttf-unifont

1.2 提升www-data權(quán)限

sudo vim /etc/passwd
改為/bin/bash

2.數(shù)據(jù)庫(kù)配置

參考 Centos7部署PostGIS 部分

3.配置mapnik-style

3.1 下載mapnik-style

sudo mkdir /var/lib/mod_tile  
cd /var/lib/mod_tile  
sudo chown  www-data:www-data -R /var/lib/mod_tile
sudo su www-data
svn co http://svn.openstreetmap.org/applications/rendering/mapnik mapnik-style

注意:

vim mapnik-style/inc/fontset-settings.xml.inc.template

替換

unifont Medium 為 Unifont Medium

3.2下載世界,海岸線地圖數(shù)據(jù)

以下五個(gè)文件從mapnik-style中g(shù)et-coastlines.sh文件獲取下載地址包晰,可能有變化

http://tile.openstreetmap.org/world_boundaries-spherical.tgz
http://tile.openstreetmap.org/processed_p.tar.bz2
http://tile.openstreetmap.org/shoreline_300.tar.bz2
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip

解壓world_boundaries下載步驟中的五個(gè)文件湿镀,取出所有的文件,并放到world_boundaries中

sudo mv world_boundaries /usr/local/share/

3.3 生成OSM.XML

cd /mapnik-style  
./generate_xml.py --world_boundaries=/usr/local/share/world_boundaries --host=127.0.0.1 --port=5432 --user=osmgis --password=1 --dbname=osmgis

3.4測(cè)試渲染

./generate_image.py

保存后伐憾,直接執(zhí)行勉痴,如果沒(méi)錯(cuò),就出現(xiàn)了 image.png

4.部署mod_tile

git clone https://github.com/openstreetmap/mod_tile

4.1 編譯與安裝

cd mod_tile  
./autogen.sh  
./configure  
make  
sudo make install  
sudo make install-mod_tile  
sudo ldconfig

4.2導(dǎo)入mod_tile

sudo vim /etc/apache2/mods-available/mod_tile.load

里面添加一行:

LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so 

生效

cd /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/mod_tile.load

5.配置瓦片渲染后臺(tái)服務(wù)renderd

5.1創(chuàng)建文件夾

sudo mkdir /var/run/renderd  
sudo chown www-data /var/run/renderd 

5.2配置renderd

sudo vim /usr/local/etc/renderd.conf

做一下配置:

[renderd]  
;把socketname設(shè)置到剛才創(chuàng)建的文件夾里  
socketname=/var/run/renderd/renderd.sock  
num_threads=4  
tile_dir=/var/lib/mod_tile  
stats_file=/var/run/renderd/renderd.stats  

[mapnik]  
plugins_dir=/usr/lib/mapnik/3.0/input  
font_dir=/usr/share/fonts/truetype
font_dir_recurse=1  

[default]  
URI=/osm_tiles/  
XML=/var/lib/mod_tile/mapnik-style/osm.xml
HOST=localhost  
;HTCPHOST=proxy.openstreetmap.org

5.3 設(shè)置用戶訪問(wèn)網(wǎng)頁(yè)的入口點(diǎn)

sudo vim  /etc/apache2/sites-available/000-default.conf  

加入

 LoadTileConfigFile /usr/local/etc/renderd.conf
 ModTileRenderdSocketName /var/run/renderd/renderd.sock
 ModTileRequestTimeout 0
 ModTileMissingRequestTimeout 30 

5.4測(cè)試

cd  /var/lib/mod_tile  
sudo su www-data  
renderd -f -c /usr/local/etc/renderd.conf

網(wǎng)頁(yè)打開(kāi):

http://192.168.15.137/osm_tiles/0/0/0.png

修改時(shí)間戳:

sudo touch /var/lib/mod_tile/planet-import-complete  
sudo chown www-data /var/lib/mod_tile/planet-import-complete

6.OpenLayer

wget http://www.openstreetmap.org/openlayers/OpenStreetMap.js    

6.1部署

sudo mv OpenStreetMap.js /var/www/html/openlayers
sudo chmod +r -R /var/www/html/openlayers

6.2html

sudo vim /var/www/html/map.html

寫入

<html>  
<head>  
    <title>OSM Local Tiles</title>  
    <link rel="stylesheet" href="/openlayers/theme/default/style.css" type="text/css" />  
    <!-- bring in the OpenLayers javascript library  
         (here we bring it from the remote site, but you could  
         easily serve up this javascript yourself) -->  
    <script src="/openlayers/OpenLayers.js"></script>  
    <!-- bring in the OpenStreetMap OpenLayers layers.  
         Using this hosted file will make sure we are kept up  
         to date with any necessary changes -->  

    <script src="/openlayers/OpenStreetMap.js"></script>  

    <script type="text/javascript">  
// Start position for the map (hardcoded here for simplicity)  
        var lat=31.27386;  
        var lon=121.48132;  
        var zoom=7;  
        var map; //complex object of type OpenLayers.Map  

        //Initialise the 'map' object  
        function init() {  
            map = new OpenLayers.Map ("map", {  
                controls:[  
                    new OpenLayers.Control.Navigation(),  
                    new OpenLayers.Control.PanZoomBar(),  
                    //new OpenLayers.Control.PanZoom(),  
                    new OpenLayers.Control.Permalink(),  
                    new OpenLayers.Control.ScaleLine({geodesic: true}),  
                    new OpenLayers.Control.Permalink('permalink'),  
                    new OpenLayers.Control.KeyboardDefaults(),  
                    new OpenLayers.Control.NavToolbar(),  
                    new OpenLayers.Control.Attribution()],  
                maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),  
                maxResolution: 156543.0339,  
                numZoomLevels: 19,  
                units: 'm',  
                projection: new OpenLayers.Projection("EPSG:900913"),  
                displayProjection: new OpenLayers.Projection("EPSG:4326")  
            } );  

  
            // This is the layer that uses the locally stored tiles  
            var newLayer = new OpenLayers.Layer.OSM("Local Tiles", "/osm_tiles/${z}/${x}/${y}.png", {numZoomLevels: 19, transitionEffect: "resize"});  
            map.addLayer(newLayer);  
            var switcherControl = new OpenLayers.Control.LayerSwitcher();  
            map.addControl(switcherControl);  
            var vector_layer = new OpenLayers.Layer.Vector('Editable Vectors');  
            map.addControl(new OpenLayers.Control.EditingToolbar(vector_layer));  
            map.addLayer(vector_layer);  

            map.addControl(new OpenLayers.Control.Graticule({visible: false}));  
            var mousepos = new OpenLayers.Control.MousePosition({div: document.getElementById('mousepos_div')});  
            map.addControl(mousepos);  
            //mousepos.moveTo(new OpenLayers.Pixel(64,0));  

            map.addControl(new OpenLayers.Control.OverviewMap());  
             /*  
            var navigationT =    new OpenLayers.Control.TouchNavigation({  
                dragPanOptions:{  
                    enableKinetic: true  
                }  
            });  

            map.addControl(navigationT);  
            */  
            if( ! map.getCenter() ){  
                var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());  
                map.setCenter (lonLat, zoom);  
            }  
        }  
    </script>  

</head>  
<!-- body.onload is called once the page is loaded (call the 'init' function) -->  
<body onload="init();">  
    <!-- define a DIV into which the map will appear. Make it take up the whole window -->  
    <div style="width: 100%; height: 93%" id="map">  
    </div>  
    <P><a href='/index.html'>start screen</a></P>  
    <div style="width: 100%; height: 5%" id="mousepos_div">
    </div>  
</body>  
</html>  

6.3訪問(wèn)測(cè)試

http://192.168.15.137/map.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末树肃,一起剝皮案震驚了整個(gè)濱河市蒸矛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌胸嘴,老刑警劉巖莉钙,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異筛谚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)停忿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門驾讲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事吮铭∈逼龋” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谓晌,是天一觀的道長(zhǎng)掠拳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纸肉,這世上最難降的妖魔是什么溺欧? 我笑而不...
    開(kāi)封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮柏肪,結(jié)果婚禮上姐刁,老公的妹妹穿的比我還像新娘。我一直安慰自己烦味,他們只是感情好聂使,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谬俄,像睡著了一般柏靶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溃论,一...
    開(kāi)封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天屎蜓,我揣著相機(jī)與錄音,去河邊找鬼蔬芥。 笑死梆靖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笔诵。 我是一名探鬼主播返吻,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乎婿!你這毒婦竟也來(lái)了测僵?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谢翎,失蹤者是張志新(化名)和其女友劉穎捍靠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體森逮,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡榨婆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褒侧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片良风。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谊迄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烟央,到底是詐尸還是另有隱情统诺,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布疑俭,位于F島的核電站粮呢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钞艇。R本人自食惡果不足惜啄寡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望香璃。 院中可真熱鬧这难,春花似錦、人聲如沸葡秒。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)眯牧。三九已至蹋岩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間学少,已是汗流浹背剪个。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留版确,地道東北人扣囊。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绒疗,于是被迫代替她去往敵國(guó)和親侵歇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理吓蘑,服務(wù)發(fā)現(xiàn)惕虑,斷路器,智...
    卡卡羅2017閱讀 134,693評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,838評(píng)論 6 342
  • 在公司避免不了會(huì)給電腦重裝系統(tǒng),小到幾臺(tái)大到幾十上百臺(tái)琳猫,如果就只有幾臺(tái)手動(dòng)安裝就可以了伟叛,那么如果幾十上百臺(tái),手動(dòng)安...
    jie0112閱讀 2,393評(píng)論 0 4
  • 不知道為什么脐嫂,我有點(diǎn)孤獨(dú)和失落痪伦,來(lái)朋友家借宿侄榴,陌生感充斥著整個(gè)心靈,陌生的床网沾,陌生的夜景,陌生的枕邊人……突然很想...
    小動(dòng)力if閱讀 160評(píng)論 0 1
  • 我們很有效率蕊爵,但是沒(méi)有目標(biāo)辉哥。我們笨鳥(niǎo)先飛,卻不知所終攒射。很多人醋旦,根本就沒(méi)有認(rèn)真地想過(guò),自己的人生要怎么度過(guò)会放。 1.為...
    皇阿瑪PLUS閱讀 1,255評(píng)論 0 2