您现在的位置:

电车算路

电车算路

1. 导入头文件

  1. #import <NavinfoKit/NavinfoKit.h>

2. 配置APIKEY

参考工程配置说明

3. 定义 NavinfoRouteSearch

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

4. 构造 NavinfoRouteSearch

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

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

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

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

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

6. 发起驾车算路

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

  1. [search startSearchWith:query];

7. 在回调中处理数据

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

说明:

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

  1. - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch
  2. result:(NavinfoRouteResult * _Nullable)result
  3. error:(NSError * _Nullable)error {
  4. NSLog(@"----> onRouteSearch");
  5. }

8. 处理失败查询

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

  1. - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch
  2. result:(NavinfoRouteResult * _Nullable)result
  3. error:(NSError * _Nullable)error {
  4. NSLog(@"----> onRouteSearch");
  5. }
  6.  

代码示例:

  1. - (void)routeSearch:(NavinfoQueryType)type{
  2. NavinfoLonlat * busOrig = [[NavinfoLonlat alloc] initWith:11633930.3 latitude:4001116.0 gbType:NavinfoGbTypeG02];
  3. NavinfoLonlat * busDest = [[NavinfoLonlat alloc] initWith:11645256.2 latitude:3993640.4 gbType:NavinfoGbTypeG02];
  4. NavinfoLonlat * orig = [[NavinfoLonlat alloc] initWith:11634000 latitude:4045000 gbType:NavinfoGbTypeG02];
  5. NavinfoLonlat * dest = [[NavinfoLonlat alloc] initWith:11635000 latitude:4054000 gbType:NavinfoGbTypeG02];
  6. NavinfoLonlat * orig1 = [[NavinfoLonlat alloc] initWith:11645000 latitude:4034000 gbType:NavinfoGbTypeG02];
  7. NavinfoLonlat * dest1 = [[NavinfoLonlat alloc] initWith:11646000 latitude:4035000 gbType:NavinfoGbTypeG02];
  8. NavinfoLonlat * carOrig = [[NavinfoLonlat alloc] initWith:12161561 latitude:3891521 gbType:NavinfoGbTypeG02];
  9. NavinfoLonlat * carDest = [[NavinfoLonlat alloc] initWith:12151443 latitude:3884730 gbType:NavinfoGbTypeG02];
  10. NavinfoRouteQuery * query = nil;
  11. switch (type) {
  12. case QUERYTYPE_BUS:
  13. query = [[NavinfoRouteQuery alloc] initBusQueryWith:busOrig dest:busDest city:@"北京"];
  14. break;
  15. case QUERYTYPE_CAR:
  16. query = [[NavinfoRouteQuery alloc] initWithorig:carOrig vias:nil dest:carDest];
  17. break;
  18. case QUERYTYPE_ELE_CAR:
  19. query = [[NavinfoRouteQuery alloc] initEleCarWithorig:orig vias:nil dest:dest soc:20 capacity:40];
  20. break;
  21. case QUERYTYPE_BULK:
  22. query = [[NavinfoRouteQuery alloc] initBulkQueryWithorigs:@[orig,orig1] dests:@[dest,dest1]];
  23. break;
  24. default:
  25. break;
  26. }
  27. NavinfoRouteSearch * search = [[NavinfoRouteSearch alloc]init];
  28. search.delegate = self;
  29. [search startSearchWith:query];
  30. }
  31.  
  32. - (void)onRouteSearch:(NavinfoRouteSearch * _Nonnull)routeSearch response:(NavinfoRouteResult * _Nullable)response
  33. error:(NSError * _Nullable)error{
  34. }

运行程序,效果图如下:


车辆行驶范围

1. 导入头文件

  1. #import <NavinfoKit/NavinfoKit.h>

2. 配置APIKEY

参考工程配置说明

3. 定义 NavinfoEleCarReachAreaSearch

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

4. 构造 NavinfoEleCarReachAreaSearch

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

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

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

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

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

6. 发起行驶范围请求

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

  1. [routeMatch startMatchWith:matchQuery];

7. 在回调中处理数据

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

说明:

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

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

8. 处理失败查询

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

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

代码示例:

  1. - (void)reachAreaTest{
  2. NavinfoLonlat * centerLonlat = [[NavinfoLonlat alloc]initWith:11637830 latitude:3989856 gbType:NavinfoGbTypeG02];
  3. NavinfoEleCarAreaQuery * areaQuery = [[NavinfoEleCarAreaQuery alloc]initWithAreaCenter:centerLonlat soc:30];
  4. NavinfoEleCarReachAreaSearch * areaSearch = [[NavinfoEleCarReachAreaSearch alloc]init];
  5. [areaSearch startSearchWith:areaQuery];
  6. }
  7. - (void)onEleCarReachAreaSearch:(NavinfoEleCarReachAreaSearch * _Nonnull)routeSearch
  8. response:(NavinfoEleCarReachAreaResult * _Nullable)response
  9. error:(NSError * _Nullable)error{
  10. NSLog(@"Error: %@", error);
  11. }

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

返回顶部