公交分析 |
公交数据准备完成后,就可以加载公交数据,用以进行公交分析。
公交分析环境设置是公交数据检查和加载公交数据的前提。通过公交分析环境设置(TransferAnalystSetting)类的方法可以设置站点环境、线路环境、公交关系和其他一些参数,如站点捕捉容限、归并容限等。TransferAnalystSetting类的方法列表如表 4.1所示:
表 4.1 TransferAnalystSetting类的方法列表
类型 |
名称 |
描述 |
StopSetting |
get/setStopSetting |
返回或设置公交站点环境设置。 |
LineSetting |
get/setLineSetting |
返回或设置公交线路环境设置。 |
RelationSetting |
get/setRelationSetting |
返回或设置公交关系设置。 |
double |
get/setSnapTolerance |
返回或设置公交站点捕捉容限。 |
double |
get/setMergeTolerance |
返回或设置公交站点归并容限。 |
double |
get/setWalkingTolerance |
返回或设置步行阈值,即从当前站点步行到达换乘站点时可接受的最大步行距离。 |
Unit |
get/setUnit |
返回或设置站点捕捉容限、站点归并容限和步行阈值的单位。 |
下面对公交分析环境设置中的各个参数进行进一步介绍。
公交站点环境设置(StopSetting)
公交站点环境设置(StopSetting)类用于设置公交站点数据的相关信息,包括公交站点所属数据集(即公交站点数据集)、站点ID字段、站点名称字段以及公交站点别名字段。在公交分析环境设置中必须指定一个StopSetting对象,且该对象必须设置了正确的参数,否则可能影响数据检查和数据加载的正确性。StopSetting类的方法列表如表 4.2所示:
表 4.2 StopSetting类的方法列表
类型 |
名称 |
描述 |
DatasetVector |
get/setDataset |
返回或设置公交站点所属数据集。要求数据集类型为点数据集。如果未设置或指定的数据集类型为其他类型,将抛出异常。 |
String |
get/setStopIDField |
返回或设置公交站点数据集中的公交站点ID字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
String |
get/setNameField |
返回或设置公交站点名称字段。该字段为必设字段。如果站点数据集中不存在该字段,将抛出异常。 |
String |
get/setAliasField |
返回或设置公交站点别名字段。 |
公交线路环境设置(LineSetting)
公交线路环境设置(LineSetting)类用于设置公交线路数据的相关信息,包括公交线路所属数据集、公交线路ID字段、名称字段以及线路的其他一些辅助信息的字段。在公交分析环境设置中必须指定一个LineSetting对象,且该对象必须设置了正确的参数,否则可能影响数据检查和数据加载的正确性。表 4.3列出了LineSetting类的方法列表。
表 4.3 LineSetting类的方法列表
类型 |
名称 |
描述 |
DatasetVector |
get/setDataset |
返回或设置公交线路所属数据集。要求数据集类型为线数据集。如果未设置或指定的数据集类型为其他类型,将抛出异常。 |
String |
get/setLineIDField |
返回或设置公交线路ID字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
String |
get/setNameField |
返回或设置公交线路名称字段。该字段为必设字段。如果线路数据集中不存在该字段,将抛出异常。 |
String |
get/setAliasField |
返回或设置公交线路别名字段。 |
String |
get/setLengthField |
返回或设置公交线路的长度字段。 |
FareFieldInfo |
get/setFareFieldInfo |
返回或设置公交线路票价字段信息。FareFieldInfo类用于设置公交票价的相关信息的字段,表 4.4列出了其各个方法。 |
String |
get/setSpeedField |
返回或设置公交行车速度字段。 |
String |
get/setLineTypeField |
返回或设置标识公交线路类型的字段。获取或设置标识公交线路类型的字段。要求该字段类型为整型。用户需要根据实际研究涉及的公共交通工具种类进行自定义划分,分别赋予一个整型值作为代号。规定字段值为0代表公交汽车,1代表地铁,2代表无轨电车。 |
String |
get/setFirstTimeField |
返回或设置公交线路首班车发车时间字段。 |
String |
get/setIntervalField |
返回或设置公交线路发车时间间隔字段。 |
String |
get/setLastTimeField |
返回或设置公交线路末班车发车时间字段。 |
表 4.4 FareFieldInfo类的方法列表
类型 |
名称 |
描述 |
String |
get/setFareTypeField |
返回或设置公交票价类型字段,即公交的计费方式。字段值为0:单一票制;1:按距离计算票价;2:按站数计算票价。 |
String |
get/setStartFareRangeField |
返回或设置起步价格范围字段。 |
String |
get/setStartFareField |
返回或设置起步价格字段。 |
String |
get/setFareStepRangeField |
返回或设置超出起步价范围后的票价递增范围字段。是指在超出起步计价范围后,距离或站点每增加多少距离或数量,公交票价会增长一定数额。 |
String |
get/setFareStepField |
返回或设置票价递增步长字段。票价递增步长是指每增加一站(按站数计价)或者一个距离单位所增加的票价(按距离计价)。 |
公交关系设置(RelationSetting)
公交关系设置(RelationSetting)类用于设置站点与线路关系数据集、站点与出入口关系数据集以及网络数据集的相关信息。在公交分析环境设置中必须指定一个RelationSetting对象,且该对象必须指定了正确的公交站点与线路关系数据集、站点ID字段和线路ID字段,否则可能影响数据检查和数据加载的正确性。而站点与出入口数据集和网络数据集为可选数据,可根据研究的实际情况进行设置。表 4.5列出了RelationSetting类的各个方法:
表 4.5 RelationSetting类的方法列表
类型 |
名称 |
描述 |
DatasetVector |
get/setDataset |
返回或设置公交站点与线路关系数据集。要求数据集类型为纯属性表类型。如果未设置或指定的数据集类型为其他类型,将抛出异常。 |
String |
get/setLineIDField |
返回或设置站点与线路关系数据集中的线路ID字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点与线路关系数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
DatasetVector |
get/setStopIDField |
返回或设置站点与线路关系数据集中的站点 ID 字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点与线路关系数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
String |
get/setSerialNumField |
返回或设置站点与线路关系数据集中存储了站点在线路中的顺序号(即该站点为线路中的第几站)的字段。 |
DatasetVector |
get/setDatasetPath |
返回或设置站点与出入口关系数据集。要求数据集类型为线数据集。如果指定的数据集类型为其他类型,将抛出异常。 |
String |
get/setStationIDField |
返回或设置站点与出入口关系数据集中的站点 ID 字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点与线路关系数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
String |
get/setExitIDField |
返回或设置站点与出入口关系数据集中的出入口 ID 字段。该字段为必设字段,要求字段类型为32位整型或64位整型。如果站点与线路关系数据集中不存在该字段或字段类型不匹配,将抛出异常。 |
String |
get/setExitNameCField |
返回或设置站点与出入口关系数据集中的出入口中文名称字段。 |
String |
get/setExitNamePYField |
返回或设置站点与出入口关系数据集中的出入口名称拼音字段。 |
DatasetVector |
get/setDatasetNetwork |
返回或设置网络数据集。根据网络数据集的弧段和结点信息来获取换乘时的实际步行路线。 |
String |
get/setEdgeIDField |
返回或设置网络数据集中的弧段ID字段。 |
String |
get/setNodeIDField |
返回或设置网路数据集中的结点ID的字段。 |
String |
get/setFNodeIDField |
返回或设置网络数据集中的弧段起始结点ID的字段。 |
String |
get/setTNodeIDField |
返回或设置网络数据集中的弧段终止结点ID的字段。 |
站点捕捉容限(get/setSnapTolerance)
站点捕捉容限用于判断站点是否位于线路上。在确定站点与线路的关系时,系统首先根据公交站点与关系数据集来判断公交站点与线路的对应关系,然后根据站点捕捉容限进行进一步排除,如果站点到线路的距离大于捕捉容限,则认为其不是该线路上的站点。
如图 4‑1所示,由公交站点与线路关系数据集得知,站点107和106位于线路1上,假设站点捕捉容限为5米,但在站点数据集和线路数据集中,站点107距离线路1的距离为10米,大于站点捕捉容限,那么站点107被认为不在线路1上。出现这种情况的原因可能是数据测量不精确,如果误差较大,不排除该点可能比排除该点造成的错误更大;也有可能是站点与线路关系数据集中该条记录有误。
|
图 4‑1 站点捕捉容限示例 |
站点归并容限(get/setMergeTolerance)
如果多个同名站点相距比较近,并且这些站点的距离在给定的站点归并容限范围内,则在公交换乘分析时被归并为同一站点,称为归并站点。归并站点在内存中存储,不会修改真实站点数据(即公交站点数据集)。
如图 4‑2所示,A、B间的距离为150m,A、D间的距离为120m,B、C间的距离为50m,B、D间的距离为110m。若归并容限设为100m,则需要归并的站点为B、C,则归并后B、C变为一个归并站点。
|
图 4‑2 站点归并容限示意图 |
步行阈值(get/setWalkingTolerance)
公交换乘的换车需要在公交站点处进行,换车情况有两种,第一种是两辆公交车的站点重合在一点,乘客从第一辆公交车下车不需要移动即可换乘第二辆公交车,第二种情况是乘客需要从一个站点走到另一个站点进行换乘,而步行阀值就是出行者换乘时可以接受的行走的最大距离。如果换乘分析的方案中步行的距离超过了这个阈值,则该方案会被放弃。
设置完公交分析环境设置后,通过load方法加载公交数据。成功加载公交数据是进行公交分析的前提,因此建议在加载前先使用Check方法对数据进行检查。
方法一:根据公交分析环境设置加载公交数据。注意,该方法不支持多线程处理,否则可能出错。
语法:
public boolean Load(TransferAnalystSetting transferAnalystSetting)
参数说明:
transferAnalystSetting:指定的公交分析环境设置。
返回值说明:
一个布尔值,表示是否加载公交数据成功。如果成功返回true,否则返回false。
方法二:使用公交基础功能时,根据公交站点环境设置、公交线路环境设置和公交关系设置来加载公交数据。注意,该方法不支持多线程处理,否则可能出错。
该方法用于使用基本公交功能时,加载公交数据,包括公交站点环境设置、公交线路环境设置和公交关系设置。公交分析的基础功能时指能够进行一般的站点或线路查询、公交换乘分析,不能通过公交分析环境设置对象(TransferAnalystSetting)对站点捕捉容限、站点归并容限、步行阈值等参数进行设置,因此进行公交换乘分析时,只给出基本的换乘线路。
语法:
public boolean load(LineSetting lineSetting, StopSetting stopSetting, RelationSetting relationSetting)
参数说明:
lineSetting:指定的公交线路环境设置。
stopSetting:指定的公交站点环境设置。
relationSetting:指定的公交关系设置。
返回值说明:
一个布尔值,表示是否加载公交数据成功。如果成功返回true,否则返回false。
注意:出现以下两种情况都必须重新调用load方法来加载公交分析环境设置,然后再进行分析,并且在重新调用前,必须先调用dispose方法释放TransferAnalyst对象所占用的资源,否则可能出错。
1. 对公交分析环境设置(或公交站点环境设置、公交线路环境设置、公交关系设置)对象的参数进行了修改,需要重新调用该方法,否则所作修改不会生效从而导致分析结果错误;
2. 对所使用的数据集进行了任何修改,包括修改数据集中的数据、替换数据集等,都需要重新加载公交分析环境设置,否则分析可能出错。