如何将分段 CF 流量数据 (SS) 与形状数据 (SHP) 结合起来?

问题描述

"Road Shape and Road Class Filters" resource's example 似乎暗示 CF 数据映射到当前形状。这是因为 CF 和 SHP 标签是兄弟。

<?xml version="1.0" encoding="UTF-8"?>
<TRAFFICML_REALTIME CREATED_TIMESTAMP="2017-06-02T18:10:48Z" MAP_VERSION="" UNITS="imperial" VERSION="3.2" xmlns="http://traffic.nokia.com/trafficml-flow-3.2">
  <RWS EBU_COUNTRY_CODE="1" EXTENDED_COUNTRY_CODE="A0" MAP_VERSION="201702" TABLE_ID="7" TY="TMC" UNITS="imperial">
    <RW DE="Binford Blvd" LI="107+01100" PBT="2017-06-02T18:10:13Z" mid="1fe417f0-f17e-47b8-b0b0-b67a71eec11d|">
      <FIS>
        <FI>
          <TMC DE="E Kessler Boulevard East Dr" LE="1.5983" PC="8367" QD="-"/>
          <SHP FC="3">39.8405,-86.11263 39.84072,-86.11237</SHP>
          <SHP FC="3">39.84072,-86.11237 39.8413,-86.11168</SHP>
          <SHP FC="3">39.8413,-86.11168 39.84181,-86.11106 39.84235,-86.11039 39.84307,-86.10953 39.84487,-86.10738 39.84663,-86.10527 39.84747,-86.10427 39.84793,-86.10369</SHP>
          <SHP FC="3">39.84793,-86.10369 39.84886,-86.10255 39.84949,-86.10172 39.85041,-86.10046 39.85088,-86.09985 39.85137,-86.09926 39.85169,-86.09888 39.85203,-86.09854 39.85237,-86.09821 39.85272,-86.09789 39.85307,-86.09758 39.85343,-86.09729 39.8542,-86.09673 39.85502,-86.09616</SHP>
          <SHP FC="3">39.85502,-86.09616 39.85534,-86.09595 39.85631,-86.09528 39.85691,-86.09487 39.85751,-86.09443</SHP>
          <SHP FC="3">39.85751,-86.09443 39.85808,-86.09399 39.85836,-86.09379</SHP>
          <CF CN="0.97" FF="47.85" JF="1.39455" SP="39.84" SU="39.84" TY="TR"/>
        </FI>
        <!-- ... -->
      </FIS>
    </RW>
  </RWS>
</TRAFFICML_REALTIME>

这很有用,因为它告诉我确切的道路形状及其相应的交通数据。

当 Flow Item 被分解成多个片段时,情况并非如此。这是我正在使用的示例 JSON:

...
{
    "FIS":[
        {
            "FI":[
                {
                    ...
                    "SHP":[
                        {
                            "value":[
                                "51.24274,7.13212 51.24311,7.13263 51.2432,7.13277 "
                            ],"FC":3
                        },{
                            "value":[
                                "51.2432,7.13277 51.24345,7.13314 51.24363,7.13346 51.24382,7.13381 51.24398,7.13408 51.24408,7.13423 51.24418,7.13436 "
                            ],...
                    ]
                    "CF":[
                        {
                            "SSS":{
                                "SS":[
                                    {
                                        "LE":1.07,"SP":50.0,"SU":52.63,"FF":49.18,"JF":0.0
                                    },{
                                        "LE":0.37,"SP":25.67,"SU":25.67,"FF":26.74,"JF":0.37504
                                    },...

如您所见,与前面的 XML 示例不同,CF 段与道路形状分离。

有什么方法可以解释这些将交通拥堵与​​道路形状相结合的数据吗?

解决方法

每个交通流模型都包含以不同位置参考(TMC、SHP)表示的路段的位置数据 以及描述当前交通状况的 currentFlow (CF) 字段。

如果同一路段内存在不同的交通状况,则包括子路段 (SS) 以提供更精细的交通状况,同时 CF 具有汇总信息。

交通流数据模型不提供每个子路段的位置数据,但可以使用子路段 SS 上可用的长度信息推导出该数据。示例:遍历到形状点,直到它匹配子段长度(首选使用百分位数长度,因为长度可能因地图版本不同或从形状点计算的长度与地图不准确匹配而有所不同)然后继续直到最后SSS>