HeatMapPath 1.0.0

HeatMapPath 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布日期上次发布2014年12月

Dylan Marriott维护。




基于目标的iOS向量场路径寻找。

如果您需要计算多个具有相同目标的对象的最短路径,则这种方法比传统的路径寻找算法更高效。它为整个地图创建一个热图,这需要时间。但对于每个对象,它只需要遵循热图值。

image

安装

如果您不使用CocoaPods,则可以在Pod/Classes内找到源代码文件。

用法

瓦片

只需创建一个自己的Tile类,该类实现了 протокол DMTile

添加以下两个属性

@synthesize distance;
@synthesize position;

并添加方法 costFromSource:

- (int)costFromSource:(id<DMTile>)sourceTile {
    return 1;
}

在这里您可以返回该瓦片的成本。如何实现由您自己决定。如果您的成本取决于方向,则可以获取源瓦片(在路径中位于其之前的一个)。

热图

初始化一个DMHeatMap并将其作为成员保留。设置地图属性。地图属性应该是一个二维数组。外数组表示每一行。每一行是一个包含您瓦片的NS数组。希望这不会听起来太复杂。

每次目标更改时,都必须设置目标属性并调用方法generate

对于需要新路径的每个对象,只需调用方法points:

演示

http://www.youtube.com/watch?v=Y3H0WLZHtzU

对角线

目前它不支持对角线移动,因为对于我的用例来说,这并非必需。您可以很容易地添加此功能。只需查看确定邻居的位置。应该在两个地方执行,一次为热图,一次为路径寻找。