• OpenStreetMap架构


    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。

    地址:http://openlayers.org/

    2.      Leaflet:一个现代、开源的Javascript库,用于提供友好交互的地图。能够用于桌面和移动平台,Leaflet设计坚持简便、高性能和可用性好的思想,在全部主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5CSS3的优势,同一时候也支持旧的浏览器訪问。支持插件扩展。有一个友好、易于使用的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)。

    地址:http://openscales.org/

    8.      Modest Maps.轻量的、可扩展的开源库。设计者和开发人员能够用于设计交互的地图。提供了Actionscript3、python、Javascript、PHP、Processing、Cinder等语言的实现。

    地址:http://modestmaps.com/

    9.      Modestmaps-js.ModestMaps库的一种轻量级javascript实现。地址:https://github.com/stamen/modestmaps-js/wiki

    10.  BruTile.基于C#语言实现的能够提供地图切片服务的库。地址:http://brutile.codeplex.com/

    11.  Polymaps.利用SVG技术提供图片和矢量切片地图服务的javascript库。

    地址:http://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

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    STL之vector
    [洛谷P3942] 将军令
    [洛谷P2127] 序列排序
    [USACO07FEB]新牛棚Building A New Barn
    [洛谷P1120] 小木棍 [数据加强版]
    [洛谷P1438] 无聊的数列
    我的Emacs配置
    [CQOI2015]任务查询系统
    可持久化数组入门
    学习openstack(六)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4673007.html
Copyright © 2020-2023  润新知