这个类是移动模型中的一个辅助类,用来处理兴趣节点的数据。
PointsOfInterest类:
数据域:
static final String POI_NS
static final String POI_FILE_S
static final String POI_SELECT_S:每个节点组选择他们的兴趣节点组和相应的概率,形式如——poiGroupIndex1, groupSelectionProbability1, groupIndex2, prob2,etc...概率的和小于等于1,如果小于1,可能会得到随机的兴趣点
SimMap map:这个map中的所有点都是兴趣点
int[] okMapNodeTypes:地图上可以访问的点
ArrayList<List<MapNode>> poiLists:存放所有兴趣节点组
List<Tuple<Double, Integer>> poiProbs:存放兴趣节点组相应的概率
Random rng
函数域:
构造函数PointsOfInterest(SimMap parentMap, int [] okMapNodeTypes, Setting settings, Random rng)从配置文件中创建POI对象,从Settings中读取Pois。
MapNode selectDestination()从POIs中或所有地图节点中选择一个随机的目的地。若从POI组中选择目的地,通过设置的概率。如果概率和小于1,那么可能选择一个地图上的其他点。先计算概率,如果整体概率和大于随机值,就从兴趣节点组中随机选择一个节点作为目的地;如果随机值大于整个概率和,则返回一个地图上的随机点。
void readPois(Settings settings)从配置中读取兴趣节点组。由于读取的是形如poiGroupIndex1, groupSelectionProbability1, groupIndex2, prob2,etc...要将其分解开,并判定其值是否有效,最后将序号和概率分别存入poiList和poiProbs表中。
List<MapNode> readPoisOf(int index, Coord offset)从文件中读取兴趣节点组。