OpenStreetMap框架简介
1.OSM平台开发
OpenStreetMap(缩写OSM)地图是一个合作项目,我们的目标是创建一个免费的内容,让所有的人都可以编辑的世界地图。
OSM在地图上由一个用户的基础上的手GPS装置、航空摄影照片、其它自由内容甚至单靠地方智慧绘制。站点里的地图图像及向量数据皆以共享创意姓名标示-同样方式分享2.0授权。
OSM站点的灵感来自维基百科等站点。
这可从该网地图页的“编辑”button及其完整修订历史获知。
经注冊的用户可上载GPS路径及使用内置的编辑程式编辑数据。眼下包含苹果和微软在内都在使用OpenStreetMap.
OSM架构例如以下图所看到的:
OSM的功能是由相互独立的组件共同完毕的。OSM的地图数据是通过PosGIS存储在PostgresSQL数据库中。通过Mapnik渲染成地图切片,通过Leaflet提供用户交互的接口。
2.基于OSM进行开发:
2.1部署自己的地图:
1. OpenLayers:OpenLayers 是一个专为WebGIS client开发提供的JavaScript类库包,用于实现标准格式公布的地图数据訪问。从OpenLayers2.2版本号以后,OpenLayers已经将所用到的Prototype.js组件整合到了自身其中,并不断在Prototype.js的基础上完好面向对象的开发。Rico用到地方不多,仅仅是在OpenLayers.Popup.AnchoredBubble类中圆角化DIV。
2. Leaflet:一个现代、开源的Javascript库,用于提供友好交互的地图。能够用于桌面和移动平台,Leaflet设计坚持简便、高性能和可用性好的思想,在全部主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同一时候也支持旧的浏览器訪问。支持插件扩展。有一个友好、易于使用的API文档和一个简单的、可读的源码。
使用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编写的开源地图框架,开发人员基于OpenScales能够构建富互联网应用,可用于网页和移动端(Android,ios)。
8. Modest Maps.轻量的、可扩展的开源库。设计者和开发人员能够用于设计交互的地图。提供了Actionscript3、python、Javascript、PHP、Processing、Cinder等语言的实现。
9. Modestmaps-js.ModestMaps库的一种轻量级javascript实现。地址:https://github.com/stamen/modestmaps-js/wiki
10. BruTile.基于C#语言实现的能够提供地图切片服务的库。地址:http://brutile.codeplex.com/
11. Polymaps.利用SVG技术提供图片和矢量切片地图服务的javascript库。
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.
3.Navit
4.RoadMap
5.VGPS
6.We-Travel
7.GpsMid
8.True Maps
9.MoNav
10.
不同软件功能矩阵:
表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 | ||
地址搜索 | 限制 | √ | √ | √ | √ | √ | √ | √ | √ | |
拐点限制 | √ | √ | √ | √ | √ | |||||
支持平台 | 全部 | 全部 | 。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
版权声明:本文博客原创文章,博客,未经同意,不得转载。