閱讀451 返回首頁    go 阿裏雲 go 技術社區[雲棲]


OpenStreetMap架構

OpenStreetMap框架介紹

1.OSM平台開發

OpenStreetMap(簡稱OSM)是一個網上地圖協作計劃,目標是創造一個內容自由且能讓所有人編輯的世界地圖。

OSM的地圖由用戶根據手提GPS裝置、航空攝影照片、其他自由內容甚至單靠地方智慧繪製。網站裏的地圖圖像及向量數據皆以共享創意姓名標示-相同方式分享2.0授權。

OSM網站的靈感來自維基百科等網站。這可從該網地圖頁的“編輯”按鈕及其完整修訂曆史獲知。經注冊的用戶可上載GPS路徑及使用內置的編輯程式編輯數據。目前包括蘋果和微軟在內都在使用OpenStreetMap.

OSM架構如下圖所示:

 

OSM的功能是由相互獨立的組件共同完成的。OSM的地圖數據是通過PosGIS存儲在PostgresSQL數據庫中,通過Mapnik渲染成地圖切片,通過Leaflet提供用戶交互的接口。

 

 

2.基於OSM進行開發:

2.1部署自己的地圖:

1.      OpenLayers:OpenLayers 是一個專為WebGIS 客戶端開發提供的JavaScript類庫包,用於實現標準格式發布的地圖數據訪問。從OpenLayers2.2版本以後,OpenLayers已經將所用到的Prototype.js組件整合到了自身當中,並不斷在Prototype.js的基礎上完善麵向對象的開發,Rico用到地方不多,隻是在OpenLayers.Popup.AnchoredBubble類中圓角化DIV。地址:https://openlayers.org/

2.      Leaflet:一個現代、開源的Javascript庫,用於提供友好交互的地圖。可以用於桌麵和移動平台,Leaflet設計堅持簡便、高性能和可用性好的思想,在所有主要桌麵和移動平台能高效運作,在現代瀏覽器上會利用HTML5CSS3的優勢,同時也支持舊的瀏覽器訪問。支持插件擴展,有一個友好、易於使用的API文檔和一個簡單的、可讀的源代碼。

使用leaflet的軟件有:Flickr,foursquare,Pinterest,craigslist,Data.gov,IGN,Wikimedia,OSM,Meetup,WSJ,Mapbox,CartoDB,GISCloud等。地址:https://leafletjs.com/

3.      Mapstraction:地址: https://wiki.openstreetmap.org/wiki/Deploying_your_own_Slippy_Map

4.      YCanvas:地址:https://github.com/jozefchutka/YCanvas

5.      Khtmlib地址:https://maplib.khtml.org/

6.      Ka-Map

7.      Openscales,用ActionScript3和Flex編寫的開源地圖框架,開發者基於OpenScales可以構建富互聯網應用,可用於網頁和移動端(Android,ios)。地址:https://openscales.org/

8.      Modest Maps.輕量的、可擴展的開源庫。設計者和開發者可以用於設計交互的地圖。提供了Actionscript3、python、Javascript、PHP、Processing、Cinder等語言的實現。地址:https://modestmaps.com/

9.      Modestmaps-js.ModestMaps庫的一種輕量級javascript實現。地址:https://github.com/stamen/modestmaps-js/wiki

10.  BruTile.基於C#語言實現的可以提供地圖切片服務的庫。地址:https://brutile.codeplex.com/

11.  Polymaps.利用SVG技術提供圖片和矢量切片地圖服務的javascript庫。地址:https://polymaps.org/

2.2渲染地圖:    

2.2.1 地圖切片    

創建地圖切片:

1.Mapnik + generate_tiles.py

2. Mapnik + mod_tile

3. Mapnik + Mysql/Ruby/Python

4. Mapnik + tilecache

表達地圖切片:

1.Openlayers

2. Maperitive

2.2.2 3D地圖

基於OSM數據的3D地圖項目有:

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地圖服務:

2.3.1路徑導航服務

一、在線導航服務

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

數據範圍

歐洲

全球

英國

應該

選定的城市

全球

駕車(最快)

 

 

駕車(路程最短)

 

 

自行車(路程最短)

 

自行車(最快)

自行車(最安全)

 

 

 

自行車(最安靜)

 

 

步行

 

 

拐點限製

 

 

汽車限製(高度、載重等)

 

 

 

 

 

中間路段禁止通行

為路段手動設置行駛速度

 

 

 

選定區域禁止通行

 

 

 

 

 

選定的橋梁或隧道禁止通行

 

 

 

 

選定的道路類型禁止通行(如高速)

 

實時交通

 

 

 

 

 

對外開放API

 

是否開源

僅導航引擎

部分

 

 

表2

功能

OSRM

TripGo

BRouter

OpenTrip-Planner

 

HoofMarker

GraphHopper

數據範圍

全球

選定城市

全球

選定城市

德國

全球

駕車(最快)

 

 

 

駕車(路程最短)

 

 

 

 

 

自行車(路程最短)

 

 

 

自行車(最快)

 

 

自行車(最安全)

 

 

 

 

自行車(最安靜)

 

 

 

 

步行

 

路程最短

拐點限製

 

 

 

汽車限製(高度、載重等)

 

 

 

 

 

 

中間路段禁止通行

 

為路段手動設置行駛速度

 

 

 

 

 

選定區域禁止通行

 

 

 

 

 

選定的橋梁或隧道禁止通行

 

 

 

 

選定的道路類型禁止通行(如高速)

 

 

 

實時交通

 

 

 

 

 

 

對外開放API

 

是否開源

 

 

二、離線導航服務

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

導航算法

 

Multiple

Dijkstra

 

A*

Dijkstra/A*

Dijkstra/A*

Dijkstra/A*

Contraction  Hierarchies

A*/ contraction hierarchy

地址搜索

限製

拐點限製

 

 

 

 

 

支持平台

所有

所有

Windows,Mac,Linux

Linux,Unix

 

 

 

 

Windows,Mac,Linux

Windows,Mac,Linux,FreeBSD

支持手持設備

Windows mobile

 

Nokia,WinCE,Android,Angstrom

Windows CE, iPhone,ipod

Java Mobile,Android Mobile

 

 

 

 

 

 

2.3.2搜索服務

1.Nominatim:按名稱和地址來搜索OSM中的數據,並生成OSM點的合成地址的工具。Nominatim是基於PostgreSQL的導入實用程序osm2pgsql使用替代地名輸出選項。索引和搜索是使用的C、PLPGSQL和PHP相結合進行。地址:https://github.com/twain47/Nominatim

2.3.3地理編碼服務

1.Nominatim

2.MapQuest

3.OpenCage

4.Yacy

5.OSMLucener

6.OSMonto

7.Gisgraphy

8.Photon

 

最後更新:2017-04-03 05:40:09

  上一篇:go 樹 總述
  下一篇:go javascript麵向對象程序設計