您现在的位置:

电车算路

电车算路

1. 导入头文件

                    #import <NavinfoKit/NavinfoKit.h>
                

2. 配置APIKEY

参考工程配置说明

3. 定义 NavinfoRouteSearch

定义主算路对象 NavinfoRouteSearch,并继承搜索协议<NavinfoRouteQueryDelegate>。

4. 构造 NavinfoRouteSearch

构造主搜索对象 NavinfoRouteSearch,并设置代理。

                    NavinfoRouteSearch * routeSearch = [[NavinfoRouteSearch alloc] init]; routeSearch.delegate = self;
                

5. 设置发起电车算路参数

其中orig(起点坐标)vias(途经点坐标集可以为空)dest(终点坐标)query(算路类型)。capacity(充电桩充到多少电量)

                    - (id)initEleCarWithorig:(NavinfoLonlat * _Nonnull)orig vias:(NSArray<NavinfoLonlat *> * _Nullable)vias dest:(NavinfoLonlat * _Nonnull)dest soc:(double)soc capacity:(double)capacity
                

6. 发起驾车算路

通过调用 NavinfoSearchRoute 的 startSearch 方法发起驾车算路查询。

                    [search startSearchWith:query];
                

7. 在回调中处理数据

当查询成功时,会进到回调函数,通过回调函数,可获取算路的结果。

说明:

通过 response.routes获取驾车换乘方案集。

                    - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch
                        result:(NavinfoRouteResult * _Nullable)result
                        error:(NSError * _Nullable)error {
                        NSLog(@"----> onRouteSearch");
                    }
     
                

8. 处理失败查询

当检索失败时,Error 会返回,通过该回调函数获取产生的失败的原因。

                    - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch
                        result:(NavinfoRouteResult * _Nullable)result
                        error:(NSError * _Nullable)error {
                        NSLog(@"----> onRouteSearch");
                    }

                

代码示例:

                    - (void)routeSearch:(NavinfoQueryType)type{
                        NavinfoLonlat * busOrig = [[NavinfoLonlat alloc] initWith:11633930.3 latitude:4001116.0 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * busDest = [[NavinfoLonlat alloc] initWith:11645256.2 latitude:3993640.4 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * orig = [[NavinfoLonlat alloc] initWith:11634000 latitude:4045000 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * dest = [[NavinfoLonlat alloc] initWith:11635000 latitude:4054000 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * orig1 = [[NavinfoLonlat alloc] initWith:11645000 latitude:4034000 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * dest1 = [[NavinfoLonlat alloc] initWith:11646000 latitude:4035000 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * carOrig = [[NavinfoLonlat alloc] initWith:12161561 latitude:3891521 gbType:NavinfoGbTypeG02];
                        NavinfoLonlat * carDest = [[NavinfoLonlat alloc] initWith:12151443 latitude:3884730 gbType:NavinfoGbTypeG02];
                        NavinfoRouteQuery * query = nil;
                        switch (type) {
                            case QUERYTYPE_BUS:
                                query = [[NavinfoRouteQuery alloc] initBusQueryWith:busOrig dest:busDest city:@"北京"];
                                break;
                            case QUERYTYPE_CAR:
                                query = [[NavinfoRouteQuery alloc] initWithorig:carOrig vias:nil dest:carDest];
                                break;
                            case QUERYTYPE_ELE_CAR:
                                query = [[NavinfoRouteQuery alloc] initEleCarWithorig:orig vias:nil dest:dest soc:20 capacity:40];
                                break;
                            case QUERYTYPE_BULK:
                                query = [[NavinfoRouteQuery alloc] initBulkQueryWithorigs:@[orig,orig1] dests:@[dest,dest1]];
                                break;
                                
                            default:
                                break;
                        }
                        NavinfoRouteSearch * search = [[NavinfoRouteSearch alloc]init];
                        search.delegate = self;
                        [search startSearchWith:query];
                    }

                    - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch response:(NavinfoRouteResult * _Nullable)response
                                    error:(NSError * _Nullable)error{
                    }
                    
                

运行程序,效果图如下:


车辆行驶范围

1. 导入头文件

                    #import <NavinfoKit/NavinfoKit.h>
                

2. 配置APIKEY

参考工程配置说明

3. 定义 NavinfoEleCarReachAreaSearch

定义电车行驶范围对象 NavinfoEleCarReachAreaSearch,并继承搜索协议<NavinfoEleCarReachAreaSearchQueryDelegate>。

4. 构造 NavinfoEleCarReachAreaSearch

构造主搜索对象 NavinfoEleCarReachAreaSearch,并设置代理。

                    NavinfoEleCarReachAreaSearch * areaSearch = [[NavinfoEleCarReachAreaSearch alloc] init];
                    areaSearch.delegate = self;
                

5. 设置发起电车行驶范围请求参数

匹路查询的请求参数类为 NavinfoEleCarAreaQuery,快捷构造NavinfoEleCarAreaQuery方法。其中必填参数 centerLonlat (自车位置),soc(电车当前电量)。

                    - (id)initWithAreaCenter:(NavinfoLonlat *)centerLonlat soc:(double)soc;
                

6. 发起行驶范围请求

通过调用 NavinfoEleCarReachAreaSearch的 startSearchWith方法发起算路查询。

                    [routeMatch startMatchWith:matchQuery];
                

7. 在回调中处理数据

当查询成功时,会进到回调函数,通过回调函数,可获取算路的结果。

说明:

通过 response.lonlats获取电车能够到达点的集合。

                    - (void)onEleCarReachAreaSearch:(NavinfoEleCarReachAreaSearch * _Nonnull)routeSearch
                    response:(NavinfoEleCarReachAreaResult * _Nullable)response
                    error:(NSError * _Nullable)error;
                

8. 处理失败查询

当检索失败时,Error 会返回,通过该回调函数获取产生的失败的原因。

                    - (void)onEleCarReachAreaSearch:(NavinfoEleCarReachAreaSearch * _Nonnull)routeSearch
                        response:(NavinfoEleCarReachAreaResult * _Nullable)response
                        error:(NSError * _Nullable)error{
                        NSLog(@"Error: %@", error);
                    }
                

代码示例:

                    - (void)reachAreaTest{
                        NavinfoLonlat * centerLonlat = [[NavinfoLonlat alloc]initWith:11637830 latitude:3989856 gbType:NavinfoGbTypeG02];
                        NavinfoEleCarAreaQuery * areaQuery = [[NavinfoEleCarAreaQuery alloc]initWithAreaCenter:centerLonlat soc:30];
                        NavinfoEleCarReachAreaSearch * areaSearch = [[NavinfoEleCarReachAreaSearch alloc]init];
                        [areaSearch startSearchWith:areaQuery];
                    }
                    - (void)onEleCarReachAreaSearch:(NavinfoEleCarReachAreaSearch * _Nonnull)routeSearch
                        response:(NavinfoEleCarReachAreaResult * _Nullable)response
                        error:(NSError * _Nullable)error{
                        NSLog(@"Error: %@", error);
                    }
                

运行程序,效果如下图所示:

返回顶部