自定义室内地图以及路径规划

本文介绍了如何在iOS项目中实现室内地图的路径规划。通过使用A*算法,从坐标扣选出不可通行区域,并将地图划分为小方格,从而找出两点间避开障碍物的最短路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近做到一个项目,设计到室内地图路径规划,其实一般的项目也很少设计到室内路径规划,室内也就那么点大。

但是上面怎么说我们就怎么做吧,或者是人性化,或者是多此一举的项目,既然写了就分享出来吧。


先说下大致思想流程吧,语言表达不是很好,有不懂的可以加我的qq24272779询问!

上图例子:

基本思路把上图建筑区域全部用坐标扣选出来,也就是不能走到的地方,蓝色区域和灰色区域。

坐标点以像素为单位。

扣选出来以后把整个图片地图分成由好多小方格组成的!

选择两个点,用A*算法求出需要经过非蓝色和灰色区域的最短路径。

(A*算法不懂的可以百度)。


代码:


//添加地图图片

 SKIndoorMapView *indoorMap = [[SKIndoorMapView alloc]initWithIndoorMapImageName:@"WHTerminalBD.png" Frame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
    [self.view addSubview:indoorMap];


//长安选择起点和终点
#pragma mark - Zoom methods
-(void)longRequired:(UIGestureRecognizer*)gesture
{
    if (gesture.state == UIGestureRecognizerStateBegan)
    {
        if (Points.count == 0 || Points.count >= 2)
        {
            [Points removeAllObjects];
            for (UIView *view in [self.mapView subviews])
            {
                [view removeFromSuperview];
            }
            //坐标
            CGPoint touchPoint = [gesture locationInView:self.mapView];
            UIImage *Img = [UIImage imageNamed:@"startPoint"];
            UIImageView *imgView = [[UIImageView alloc]initWithImage:Img];
           
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值