osrm數(shù)據(jù)格式

OSRM使用一些數(shù)據(jù)文件來存儲(chǔ)路網(wǎng)圖和相關(guān)的元數(shù)據(jù)傲茄。以下是常用的OSRM數(shù)據(jù)文件以及它們的格式:

├── taiwan-latest.osm.pbf
├── taiwan-latest.osrm.cnbg
├── taiwan-latest.osrm.cnbg_to_ebg
├── taiwan-latest.osrm.datasource_names
├── taiwan-latest.osrm.ebg
├── taiwan-latest.osrm.ebg_nodes
├── taiwan-latest.osrm.edges
├── taiwan-latest.osrm.enw
├── taiwan-latest.osrm.fileIndex
├── taiwan-latest.osrm.geometry
├── taiwan-latest.osrm.hsgr
├── taiwan-latest.osrm.icd
├── taiwan-latest.osrm.maneuver_overrides
├── taiwan-latest.osrm.names
├── taiwan-latest.osrm.nbg_nodes
├── taiwan-latest.osrm.properties
├── taiwan-latest.osrm.ramIndex
├── taiwan-latest.osrm.restrictions
├── taiwan-latest.osrm.timestamp
├── taiwan-latest.osrm.tld
├── taiwan-latest.osrm.tls
├── taiwan-latest.osrm.turn_duration_penalties
├── taiwan-latest.osrm.turn_penalties_index
└── taiwan-latest.osrm.turn_weight_penalties

.osm.pbf 文件

這是一個(gè)基于 Protocol Buffers 的文件格式,可以存儲(chǔ) OpenStreetMap(OSM)的道路網(wǎng)絡(luò)數(shù)據(jù)。這里的“pbf”代表Protocol Buffers格式淋硝。.osm.pbf文件可以從OSM下載,并通過osrm-extract命令行工具轉(zhuǎn)換為OSRM構(gòu)建所需的`.osrm'文件涤垫。在OSM中谤狡,.osm.pbf(Protocol Buffers格式)文件包含了完整的地圖數(shù)據(jù),例如道路茎毁、定位點(diǎn)以及建筑物等克懊,OSRM使用融合和過濾等算法提取這些數(shù)據(jù)。這種方式確保了處理數(shù)據(jù)的時(shí)有效而且效率更高七蜘,同時(shí)這種方式也使得OSRM支持更多的數(shù)據(jù)源谭溉。

.osrm 路網(wǎng)文件
.osrm 文件是OSRM使用的主要數(shù)據(jù)文件,其中存儲(chǔ)了剛剛從.osm.pbf文件中提取的路網(wǎng)數(shù)據(jù)橡卤。.osrm文件主要分為兩個(gè)部分扮念,道路元數(shù)據(jù)和路緣信息(這些數(shù)據(jù)來源于.osrm.hsgr文件)。道路元數(shù)據(jù)中包括道路的長(zhǎng)度碧库、速度柜与、例如 U-turns 或者 海拔變化(用于計(jì)算路程成本等)巧勤。路口信息和其他元數(shù)據(jù)用于處理路線,例如從一條道路轉(zhuǎn)換到其他道路的花費(fèi)成本弄匕。

.osrm.hsgr 超級(jí)圖文件
.osrm.hsgr 文件是OSRM的另一個(gè)數(shù)據(jù)文件颅悉,其中包含了超級(jí)圖,這個(gè)超級(jí)圖比路網(wǎng)圖要少得多迁匠,但卻保留了高速公路签舞、跨越城市的公路和其他網(wǎng)絡(luò)關(guān)鍵信息,可以加速路線查找柒瓣。.osrm.hsgr 文件中包括路網(wǎng)中所有邊的信息--起始點(diǎn)、終止點(diǎn)吠架、路況等 -- 和超級(jí)邊的信息芙贫。

.osrm.hsgr 是二進(jìn)制文件,其結(jié)構(gòu)體定義如下:

struct HSGRHeader {
    uint32_t checksum;      // 數(shù)據(jù)校驗(yàn)和
    uint32_t timestamp_ns;  // 時(shí)間戳(納秒)
};

struct HSGRDirectory {
    uint32_t num_ranges;    // 數(shù)據(jù)段數(shù)量
    uint32_t num_nodes;     // 節(jié)點(diǎn)數(shù)量
    uint32_t check_sum;     // 校驗(yàn)和(由數(shù)據(jù)段的校驗(yàn)和計(jì)算得出)
};

struct HSGRRange {
    uint32_t start;         // 起始節(jié)點(diǎn)編號(hào)
    uint32_t end;           // 終止節(jié)點(diǎn)編號(hào)
    uint32_t checksum;      // 數(shù)據(jù)段校驗(yàn)和
};

// 高速路圖邊的信息
struct HSGREdge {
    uint32_t source;        // 起始點(diǎn)標(biāo)識(shí)符
    uint32_t target;        // 終止點(diǎn)標(biāo)識(shí)符
    uint32_t weight;        // 邊的權(quán)重(距離)
    uint32_t distance;      // 邊的長(zhǎng)度
    uint32_t shortcut;      // 0:非捷徑邊傍药,1:捷徑邊
};

// 前向搜索信息的頂點(diǎn)信息
struct HSGRNode {
    uint32_t offset;        // 相對(duì)地址
    uint32_t num_edges;     // 前向搜索邊數(shù)目
    uint32_t shortcut;      // 在捷徑上磺平,0:不是捷徑點(diǎn),1:源點(diǎn)拐辽,2:目標(biāo)點(diǎn)拣挪,3:源點(diǎn)和目標(biāo)點(diǎn)
    uint32_t coord;         // 坐標(biāo)值(單位為0.0001度)
};
其中,HSGRHeader 結(jié)構(gòu)體定義了高速路圖數(shù)據(jù)的頭部信息俱诸,包括數(shù)據(jù)的校驗(yàn)和和時(shí)間戳菠劝;HSGRDirectory 結(jié)構(gòu)體定義了高速路圖數(shù)據(jù)中每個(gè)數(shù)據(jù)段的信息,包括數(shù)據(jù)段數(shù)量睁搭、節(jié)點(diǎn)數(shù)量和校驗(yàn)和赶诊;HSGRRange 結(jié)構(gòu)體定義了每個(gè)數(shù)據(jù)段所包含的節(jié)點(diǎn)范圍和數(shù)據(jù)段校驗(yàn)和;HSGREdge 結(jié)構(gòu)體定義了高速路圖中每條邊的信息园骆,包括起始點(diǎn)舔痪、終止點(diǎn)、邊的權(quán)重和長(zhǎng)度以及是否是捷徑邊等锌唾;HSGRNode 結(jié)構(gòu)體定義了前向搜索信息中每個(gè)頂點(diǎn)的信息锄码,包括相對(duì)地址、前向搜索邊數(shù)目晌涕、是否在捷徑上以及坐標(biāo)值等滋捶。

這些結(jié)構(gòu)體給予了我們對(duì) .osrm.hsgr 數(shù)據(jù)文件的更深層次的了解,便于對(duì)數(shù)據(jù)的理解和應(yīng)用渐排。

.osrm.timestamp 文件
.osrm.timestamp 文件包含生成.osrm 和 .osrm.hsgr兩個(gè)文件的時(shí)間戳,所以當(dāng)文件發(fā)生變化時(shí)可以更新它們驯耻。

.osrm.names 文件
.osrm.names 文件包含路網(wǎng)上每個(gè)節(jié)點(diǎn)的名稱信息亲族,例如道路名稱、地點(diǎn)等霎迫。這些信息可以用于語音提示或出行建議等應(yīng)用場(chǎng)合。

.osrm.nodes 文件
.osrm.nodes 文件是一個(gè)二進(jìn)制文件知给,用于存儲(chǔ)路網(wǎng)圖上的所有節(jié)點(diǎn)瓤帚,保存了所有路網(wǎng)節(jié)點(diǎn)的ID和經(jīng)緯度坐標(biāo)涩赢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市筒扒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌花墩,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冰蘑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡祠肥,警方通過查閱死者的電腦和手機(jī)武氓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門仇箱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來聋丝,“玉大人,你說我怎么就攤上這事工碾∪跄溃” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵渊额,是天一觀的道長(zhǎng)况木。 經(jīng)常有香客問我,道長(zhǎng)旬迹,這世上最難降的妖魔是什么火惊? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮奔垦,結(jié)果婚禮上屹耐,老公的妹妹穿的比我還像新娘。我一直安慰自己椿猎,他們只是感情好惶岭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布寿弱。 她就那樣靜靜地躺著,像睡著了一般按灶。 火紅的嫁衣襯著肌膚如雪症革。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天鸯旁,我揣著相機(jī)與錄音噪矛,去河邊找鬼。 笑死铺罢,一個(gè)胖子當(dāng)著我的面吹牛艇挨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播韭赘,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼雷袋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了辞居?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤蛋勺,失蹤者是張志新(化名)和其女友劉穎瓦灶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抱完,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贼陶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巧娱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碉怔。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖禁添,靈堂內(nèi)的尸體忽然破棺而出撮胧,到底是詐尸還是另有隱情,我是刑警寧澤老翘,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布芹啥,位于F島的核電站,受9級(jí)特大地震影響墓怀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜傀履,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一钓账、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧官扣,春花似錦、人聲如沸惕蹄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泪蔫。三九已至,卻和暖如春撩荣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逛拱。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工台猴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人曹步。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓休讳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親俊柔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容