我使用HERE流量API,例如:
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)的东西都可以。谢谢你的帮助。
答案 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。