1.語(yǔ)言
Python:特別適用于網(wǎng)絡(luò)應(yīng)用懒熙,包括網(wǎng)站这溅、后臺(tái)服務(wù)等悬蔽。
2.前端
Leaflet:一個(gè)開(kāi)源JavaScript庫(kù)员舵,Leaflet是用來(lái)創(chuàng)建移動(dòng)友好性脑沿、交互式地圖的工具。Leaflet設(shè)計(jì)的目標(biāo)是簡(jiǎn)潔性马僻、表現(xiàn)性和易用性庄拇。
Openlayer3:它是一個(gè)開(kāi)源的WebGIS引擎,使用了JavaScript韭邓、最新的HTML5技術(shù)及CSS技術(shù)措近,支持dom,canvas和webgl三種渲染方式女淑。除了支持網(wǎng)頁(yè)端瞭郑,還支持移動(dòng)端,在地圖數(shù)據(jù)源方面鸭你,支持各種類(lèi)型的切片地圖凰浮,既支持在線的我抠,也支持離線的。比如OSM,Bing,MapBox,Stamen,MapQuest等等袜茧;還支持各種矢量地圖,比如GeoJSON瓣窄,TopoJSON笛厦,KML,GML等等俺夕。隨著OpenLayers3的進(jìn)一步發(fā)展裳凸,將支持更多的地圖類(lèi)型。
3.后端
Geoserver:Geoserver是一個(gè)功能齊全劝贸,遵循OGC開(kāi)放標(biāo)準(zhǔn)的開(kāi)源WFS-T和WMS服務(wù)器姨谷。利用Geoserver可以把數(shù)據(jù)作為maps/images來(lái)發(fā)布(利用WMS來(lái)實(shí)現(xiàn))也可以直接發(fā)布實(shí)際的數(shù)據(jù)(利用WFS來(lái)實(shí)現(xiàn)),同時(shí)也提供了修改映九,刪除和新增的功能(利用WFS-T)梦湘。geoserver只能用j2ee開(kāi)發(fā)
4.切片格式
地圖切片:當(dāng)前地圖切片分為兩種,一種是柵格地圖切片件甥,一種是矢量地圖切片捌议。柵格地圖切片的優(yōu)點(diǎn)是顯示效率高,方便傳輸引有,缺點(diǎn)是圖片占用帶寬和存儲(chǔ)都較大瓣颅,不利于地圖在移動(dòng)設(shè)備的應(yīng)用,圖片無(wú)法交互譬正。矢量地圖切片的優(yōu)點(diǎn)是占用服務(wù)器的空間較少宫补,配色靈活,可以實(shí)現(xiàn)有效的地圖交互顯示功能曾我,目前發(fā)展很快粉怕。
5.數(shù)據(jù)庫(kù)
Postgresql:PostgreSQL是一個(gè)開(kāi)源的對(duì)象-關(guān)系數(shù)據(jù)庫(kù)服務(wù)器(數(shù)據(jù)庫(kù)管理系統(tǒng))
MBTILES:MBTiles是一種地圖切片存儲(chǔ)的數(shù)據(jù)規(guī)范,它使用SQLite數(shù)據(jù)庫(kù)您单,可大大提高海量地圖切片的讀取速度斋荞,比通過(guò)切片文件方式的讀取要快很多,適用于Android虐秦、iPhone等智能手機(jī)的離線地圖存儲(chǔ)平酿。
6.切片渲染
Mapnik:是個(gè)地圖渲染的工具,底層C++悦陋,頂層有各種各樣的API接口蜈彼,包括python,node.js等俺驶。作為地圖渲染引擎幸逆,有著舉足輕重的地位棍辕。mapnik主要完成的是矢量數(shù)據(jù)轉(zhuǎn)成柵格數(shù)據(jù)的過(guò)程。
TileMill:是一款自由定制開(kāi)源地圖的開(kāi)源軟件还绘,可以制作交互式地圖楚昭,mapnik為其渲染器,CartoCSS作為樣表式語(yǔ)言拍顷,node.js為其本地服務(wù)器交互抚太,用Backbone.js作為代理器。
7.OSM常用配套工具
Potlatch:在線的地圖編輯器
Josm:JOSM是可拓展的Openstreetmap編輯器昔案,以java7寫(xiě)成尿贫,目前它支持本地?cái)?shù)據(jù)或osm數(shù)據(jù)庫(kù)中的GPX軌跡數(shù)據(jù),以及加載和編輯osm數(shù)據(jù)庫(kù)中的現(xiàn)有節(jié)點(diǎn)踏揣、路徑庆亡、元數(shù)據(jù)標(biāo)簽及關(guān)系。
Maperitive:可用于制作地圖切片捞稿,但不支持從Postgis或SQlite等數(shù)據(jù)庫(kù)讀入數(shù)據(jù)又谋,所以處理大型的數(shù)據(jù)比較麻煩。