ONE源代码分析——movement7之PointsOfInterest

这个类是移动模型中的一个辅助类,用来处理兴趣节点的数据。

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)从文件中读取兴趣节点组。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ymaym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值