如何将HERE事件RDS-TMC数据转换为几何(点)

时间:2014-05-02 18:49:22

标签: here-api

我使用HERE流量API,例如:

http://traffic.cit.api.here.com/traffic/6.0/incidents.xml?bbox=43.8,-79.5;43.6,-79.4&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&status=active&maxresults=50

XML返回:

...
<RDS-TMC>
  <ORIGIN>
    <EBU_COUNTRY_CODE>C</EBU_COUNTRY_CODE>
    <TABLE_ID>9</TABLE_ID>
    <LOCATION_ID>04184</LOCATION_ID>
    <LOCATION_DESC>DUFFERIN ST/EXIT 364</LOCATION_DESC>
    <RDS_DIRECTION>-</RDS_DIRECTION>
  </ORIGIN>
  <TO>
    <EBU_COUNTRY_CODE>C</EBU_COUNTRY_CODE>
    <TABLE_ID>9</TABLE_ID>
    <LOCATION_ID>04187</LOCATION_ID>
    <LOCATION_DESC>HWY-11A/AVENUE RD/EXIT 367</LOCATION_DESC>
    <RDS_DIRECTION>-</RDS_DIRECTION>
  </TO>
  <DIRECTION>+</DIRECTION>
  <ALERTC>
    <TRAFFIC_CODE>701</TRAFFIC_CODE>
    <QUANTIFIERS>0</QUANTIFIERS>
    <DESCRIPTION>(Q) (--//set of//sets of) roadwork</DESCRIPTION>
    <ALERTC_DURATION>L</ALERTC_DURATION>
    <ALERTC_DIRECTION>1</ALERTC_DIRECTION>
    <UPDATE_CLASS>11</UPDATE_CLASS>
    <PHRASE_CODE>E1</PHRASE_CODE>
    <EXTENT>3</EXTENT>
    <DURATION>0</DURATION>
  </ALERTC>
</RDS-TMC>
...

是否有任何API可将RDS-TMC部分信息转换为几何(点): 也许像这样的事情:

<Path><Point lat,long /><Point lat,long />[snip]<Point lat,long /><Point lat,long /></Path>

任何返回道路几何形状(lat,long)的东西都可以。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用geoloc / origin中的纬度和经度元素吗?也许将它们存放在查找表中?我知道并非所有元素都存在,因此您可能还需要在Street Intersection Gecoding中使用Geocoding API。可以从Street geometry

获取Enterprise Routing API

答案 1 :(得分:0)

我不知道一个API完全符合您的要求(然后再说一遍,我对HERE服务不太熟悉,所以可能会有一些我错过的东西)。

您发布的XML看起来像是已解码的TMC消息,其中<origin><to>元素描述了受影响路由的开始和结束。为了在RDS等低带宽连接上工作,TMC只传输16位位置代码,并依赖接收器中的查找表来完成所有其他工作。 HERE似乎通过解析eqach位置的描述为您完成了一些工作。

每个元素中的三个元素唯一标识位置:<ebu_country_code><table_id>标识位置表,<location_id>标识该表中的唯一位置。您可以通过获取位置表(而不是您想要覆盖的每个区域的一个位置表)将其解码为坐标。这些将为<origin><to>分别提供一个积分。对于较长的道路,在这两个点之间有额外的TMC位置,您可以走过桌子并获得这些(在高速公路上,通常每个交叉点和每个休息区域都有位置)。但是,它仍然不会为您提供完整的道路几何形状 - 您需要使用地图数据。

TMC位置数据集的来源列表(虽然不详尽)是here