OpenStreetMap架构
OpenStreetMap框架簡(jiǎn)介
1.OSM平臺(tái)開發(fā)
OpenStreetMap(縮寫OSM)地圖是一個(gè)合作項(xiàng)目,我們的目標(biāo)是創(chuàng)建一個(gè)免費(fèi)的內(nèi)容,讓所有的人都可以編輯的世界地圖。
OSM在地圖上由一個(gè)用戶的基礎(chǔ)上的手GPS裝置、航空攝影照片、其它自由內(nèi)容甚至單靠地方智慧繪制。站點(diǎn)里的地圖圖像及向量數(shù)據(jù)皆以共享創(chuàng)意姓名標(biāo)示-同樣方式分享2.0授權(quán)。
OSM站點(diǎn)的靈感來(lái)自維基百科等站點(diǎn)。
這可從該網(wǎng)地圖頁(yè)的“編輯”button及其完整修訂歷史獲知。
經(jīng)注冊(cè)的用戶可上載GPS路徑及使用內(nèi)置的編輯程式編輯數(shù)據(jù)。眼下包含蘋果和微軟在內(nèi)都在使用OpenStreetMap.
OSM架構(gòu)例如以下圖所看到的:
OSM的功能是由相互獨(dú)立的組件共同完畢的。OSM的地圖數(shù)據(jù)是通過(guò)PosGIS存儲(chǔ)在PostgresSQL數(shù)據(jù)庫(kù)中。通過(guò)Mapnik渲染成地圖切片,通過(guò)Leaflet提供用戶交互的接口。
2.基于OSM進(jìn)行開發(fā):
2.1部署自己的地圖:
1.OpenLayers:OpenLayers 是一個(gè)專為WebGISclient開發(fā)提供的JavaScript類庫(kù)包,用于實(shí)現(xiàn)標(biāo)準(zhǔn)格式公布的地圖數(shù)據(jù)訪問。從OpenLayers2.2版本號(hào)以后,OpenLayers已經(jīng)將所用到的Prototype.js組件整合到了自身其中,并不斷在Prototype.js的基礎(chǔ)上完好面向?qū)ο蟮拈_發(fā)。Rico用到地方不多,僅僅是在OpenLayers.Popup.AnchoredBubble類中圓角化DIV。
地址:http://openlayers.org/
2.Leaflet:一個(gè)現(xiàn)代、開源的Javascript庫(kù),用于提供友好交互的地圖。能夠用于桌面和移動(dòng)平臺(tái),Leaflet設(shè)計(jì)堅(jiān)持簡(jiǎn)便、高性能和可用性好的思想,在全部主要桌面和移動(dòng)平臺(tái)能高效運(yùn)作,在現(xiàn)代瀏覽器上會(huì)利用HTML5和CSS3的優(yōu)勢(shì),同一時(shí)候也支持舊的瀏覽器訪問。支持插件擴(kuò)展。有一個(gè)友好、易于使用的API文檔和一個(gè)簡(jiǎn)單的、可讀的源碼。
使用leaflet的軟件有:Flickr,foursquare,Pinterest,craigslist,Data.gov,IGN,Wikimedia,OSM,Meetup,WSJ,Mapbox,CartoDB,GISCloud等。地址:http://leafletjs.com/
3.Mapstraction:地址:
http://wiki.openstreetmap.org/wiki/Deploying_your_own_Slippy_Map
4.YCanvas:地址:https://github.com/jozefchutka/YCanvas
5.Khtmlib地址:http://maplib.khtml.org/
6.Ka-Map
7.Openscales,用ActionScript3和Flex編寫的開源地圖框架,開發(fā)人員基于OpenScales能夠構(gòu)建富互聯(lián)網(wǎng)應(yīng)用,可用于網(wǎng)頁(yè)和移動(dòng)端(Android,ios)。
地址:http://openscales.org/
8.Modest Maps.輕量的、可擴(kuò)展的開源庫(kù)。設(shè)計(jì)者和開發(fā)人員能夠用于設(shè)計(jì)交互的地圖。提供了Actionscript3、python、Javascript、PHP、Processing、Cinder等語(yǔ)言的實(shí)現(xiàn)。
地址:http://modestmaps.com/
9.Modestmaps-js.ModestMaps庫(kù)的一種輕量級(jí)javascript實(shí)現(xiàn)。地址:https://github.com/stamen/modestmaps-js/wiki
10.BruTile.基于C#語(yǔ)言實(shí)現(xiàn)的能夠提供地圖切片服務(wù)的庫(kù)。地址:http://brutile.codeplex.com/
11.Polymaps.利用SVG技術(shù)提供圖片和矢量切片地圖服務(wù)的javascript庫(kù)。
地址:http://polymaps.org/
2.2渲染地圖:
2.2.1 地圖切片
創(chuàng)建地圖切片:
1.Mapnik + generate_tiles.py
2. Mapnik + mod_tile
3. Mapnik + Mysql/Ruby/Python
4. Mapnik + tilecache
表達(dá)地圖切片:
1.Openlayers
2. Maperitive
2.2.2 3D地圖
基于OSM數(shù)據(jù)的3D地圖項(xiàng)目有:
1.OSM-3D
2.Glosm
3.OSM2World
4.World2XPlane
5.osm2xp
6. OSM in 3D using XML3D
7.Kendzi3d
8.VTP VTBuilder
9. WikiMiniAtlas
10. OSM in 3D using XML3D
11.HaptoRender
12.F4 Map
2.3地圖服務(wù):
2.3.1路徑導(dǎo)航服務(wù)
一、在線導(dǎo)航服務(wù)
1.OpenRoute-Service
2.YOURS
3.CycleStreets
4.Routino
5.BBBike World
6.MapQuest
7.OSRM
8.TripGo
9.BRouter
10.OpenTrip-Planner
11.HoofMarker
12.GraphHopper
不同軟件的功能矩陣:
表1
|
功能 |
OpenRoute-Service |
YOURS |
CycleStreets |
Routino |
BBBike World |
MapQuest |
|
數(shù)據(jù)范圍 |
歐洲 |
全球 |
英國(guó) |
應(yīng)該 |
選定的城市 |
全球 |
|
駕車(最快) |
√ |
√ |
√ |
√ |
||
|
駕車(路程最短) |
√ |
√ |
√ |
√ |
||
|
自行車(路程最短) |
√ |
√ |
√ |
√ |
√ |
|
|
自行車(最快) |
√ |
√ |
√ |
√ |
√ |
√ |
|
自行車(最安全) |
√ |
√ |
√ |
|||
|
自行車(最安靜) |
√ |
√ |
√ |
√ |
||
|
步行 |
√ |
√ |
√ |
√ |
||
|
拐點(diǎn)限制 |
√ |
√ |
√ |
√ |
||
|
汽車限制(高度、載重等) |
√ |
|||||
|
中間路段禁止通行 |
√ |
√ |
√ |
√ |
√ |
√ |
|
為路段手動(dòng)設(shè)置行駛速度 |
√ |
√ |
√ |
|||
|
選定區(qū)域禁止通行 |
√ |
|||||
|
選定的橋梁或隧道禁止通行 |
√ |
√ |
||||
|
選定的道路類型禁止通行(如快速) |
√ |
√ |
√ |
√ |
√ |
|
|
實(shí)時(shí)交通 |
√ |
|||||
|
對(duì)外開放API |
√ |
√ |
√ |
√ |
√ |
|
|
是否開源 |
僅導(dǎo)航引擎 |
√ |
部分 |
√ |
√ |
表2
|
功能 |
OSRM |
TripGo |
BRouter |
OpenTrip-Planner |
HoofMarker |
GraphHopper |
|
數(shù)據(jù)范圍 |
全球 |
選定城市 |
全球 |
選定城市 |
德國(guó) |
全球 |
|
駕車(最快) |
√ |
√ |
√ |
|||
|
駕車(路程最短) |
√ |
|||||
|
自行車(路程最短) |
√ |
√ |
√ |
|||
|
自行車(最快) |
√ |
√ |
√ |
√ |
||
|
自行車(最安全) |
√ |
√ |
||||
|
自行車(最安靜) |
√ |
√ |
||||
|
步行 |
√ |
路程最短 |
√ |
√ |
√ |
|
|
拐點(diǎn)限制 |
√ |
√ |
√ |
|||
|
汽車限制(高度、載重等) |
||||||
|
中間路段禁止通行 |
√ |
√ |
√ |
√ |
√ |
|
|
為路段手動(dòng)設(shè)置行駛速度 |
√ |
|||||
|
選定區(qū)域禁止通行 |
√ |
|||||
|
選定的橋梁或隧道禁止通行 |
√ |
√ |
||||
|
選定的道路類型禁止通行(如快速) |
√ |
√ |
√ |
|||
|
實(shí)時(shí)交通 |
||||||
|
對(duì)外開放API |
√ |
√ |
√ |
√ |
√ |
|
|
是否開源 |
√ |
√ |
√ |
√ |
√ |
二、離線導(dǎo)航服務(wù)
1.Geosmore
2.Traveling Salesman
3.Navit
4.RoadMap
5.VGPS
6.We-Travel
7.GpsMid
8.True Maps
9.MoNav
10.CartoType
不同軟件功能矩陣:
表3
|
功能 |
Geosmore |
Traveling Salesman |
Navit |
RoadMap |
VGPS |
We-Travel |
GpsMid |
True Map |
MoNav |
CartoType |
|
導(dǎo)航算法 |
Multiple |
Dijkstra |
A* |
Dijkstra/A* |
Dijkstra/A* |
Dijkstra/A* |
Contraction Hierarchies |
A*/ contraction hierarchy |
||
|
地址搜索 |
限制 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
拐點(diǎn)限制 |
√ |
√ |
√ |
√ |
√ |
|||||
|
支持平臺(tái) |
全部 |
全部 |
Windows。Mac,Linux |
Linux,Unix |
Windows。Mac,Linux |
Windows。Mac,Linux,FreeBSD |
||||
|
支持手持設(shè)備 |
Windows mobile |
Nokia,WinCE,Android,Angstrom |
Windows CE, iPhone,ipod |
Java Mobile,Android Mobile |
2.3.2搜索服務(wù)
1.Nominatim:按名稱和地址來(lái)搜索OSM中的數(shù)據(jù),并生成OSM點(diǎn)的合成地址的工具。
Nominatim是基于PostgreSQL的導(dǎo)入有用程序osm2pgsql使用替代地名輸出選項(xiàng)。索引和搜索是使用的C、PLPGSQL和PHP相結(jié)合進(jìn)行。地址:https://github.com/twain47/Nominatim
2.3.3地理編碼服務(wù)
1.Nominatim
2.MapQuest
3.OpenCage
4.Yacy
5.OSMLucener
6.OSMonto
7.Gisgraphy
8.Photon
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的OpenStreetMap架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查看路由器管理员密码如何获取家用路由
- 下一篇: 电脑安装软件技巧电脑如何下载安装软件