百度地图之计算工具

简介:

//
//  toolViewController.m
//  baiDuDemo
//
//  Created by City--Online on 15/6/4.
//  Copyright (c) 2015年 XQB. All rights reserved.
//

#import "toolViewController.h"
#import "BMKTypes.h"
#import "BMKGeometry.h"
#import "BMKNavigation.h"
#import "GTMBase64.h"

@interface toolViewController ()

@end

@implementation toolViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //判断两点距离
    BMKMapPoint point1=BMKMapPointForCoordinate(CLLocationCoordinate2DMake(22.5538, 114.0672));
    BMKMapPoint point2=BMKMapPointForCoordinate(CLLocationCoordinate2DMake(23.5538, 115.0672));
    CLLocationDistance distance = BMKMetersBetweenMapPoints(point1,point2);
    NSLog(@"%lf米",distance);
    
    //坐标转换
    CLLocationCoordinate2D test = CLLocationCoordinate2DMake(22.5538, 114.0672);
    //转换 google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标至百度坐标
    NSDictionary* testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_COMMON);
    //转换GPS坐标至百度坐标
    testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_GPS);
    NSLog(@"x=%@,y=%@",[testdic objectForKey:@"x"],[testdic objectForKey:@"y"]);
    //base64 解密
   NSString *y= [[NSString alloc] initWithData:[GTMBase64 decodeString:((NSString *)[testdic objectForKey:@"y"])] encoding:NSUTF8StringEncoding];
   NSString *x= [[NSString alloc] initWithData:[GTMBase64 decodeString:((NSString *)[testdic objectForKey:@"x"])] encoding:NSUTF8StringEncoding];
    NSLog(@"X=%@  Y=%@",x,y);
   //base64加密
    NSString *x1=  [[NSString alloc] initWithData:[GTMBase64 encodeData:[x dataUsingEncoding:NSUTF8StringEncoding]] encoding:NSUTF8StringEncoding];
    NSString *y1=  [[NSString alloc] initWithData:[GTMBase64 encodeData:[y dataUsingEncoding:NSUTF8StringEncoding]] encoding:NSUTF8StringEncoding];
    NSLog(@"%@  %@",x1,y1);
    
     //导航
    UIButton *btnnative=[UIButton buttonWithType:UIButtonTypeSystem];
    [btnnative setTitle:@"客户端导航" forState:UIControlStateNormal];
    btnnative.frame=CGRectMake(100, 100, 100, 100);
    [btnnative addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    btnnative.tag=10001;
    [self.view addSubview:btnnative];
    
    UIButton *btnweb=[UIButton buttonWithType:UIButtonTypeSystem];
    [btnweb setTitle:@"web导航" forState:UIControlStateNormal];
    btnweb.frame=CGRectMake(100, 200, 100, 100);
    [btnweb addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    btnweb.tag=10002;
    [self.view addSubview:btnweb];
}
-(void)btnClick:(id)sender
{
    UIButton *btn=(UIButton *)sender;
    if (btn.tag==10001) {
        //初始化调启导航时的参数管理类
        BMKNaviPara* para = [[BMKNaviPara alloc]init];
        //指定导航类型
        para.naviType = BMK_NAVI_TYPE_NATIVE;
        
        //初始化终点节点
        BMKPlanNode* end = [[BMKPlanNode alloc]init];
        //指定终点经纬度
        CLLocationCoordinate2D coor2;
        coor2.latitude = 22.5538;
        coor2.longitude = 114.6072;
        end.pt = coor2;
        //指定终点名称
        end.name = @"少年宫";
        //指定终点
        para.endPoint = end;
        
        //指定返回自定义scheme,具体定义方法请参考常见问题
        para.appScheme = @"baidumapsdk://mapsdk.baidu.com";
        //调启百度地图客户端导航
        [BMKNavigation openBaiduMapNavigation:para];

    }
    else if (btn.tag==10002)
    {
        //初始化调启导航时的参数管理类
        BMKNaviPara* para = [[BMKNaviPara alloc]init];
        //指定导航类型
        para.naviType = BMK_NAVI_TYPE_WEB;
        
        //初始化起点节点
        BMKPlanNode* start = [[BMKPlanNode alloc]init] ;
        //指定起点经纬度
//        CLLocationCoordinate2D coor1;
//        coor1.latitude = 22.5538;
//        coor1.longitude = 114.6702;
//        start.pt = coor1;
        //指定起点名称
        start.name = @"江苏大厦";
        //指定起点
        para.startPoint = start;
        
        
        //初始化终点节点
        BMKPlanNode* end = [[BMKPlanNode alloc]init] ;
//        CLLocationCoordinate2D coor2;
//        coor2.latitude = 22.5638;
//        coor2.longitude = 114.6702;
//        end.pt = coor2;
        para.endPoint = end;
        //指定终点名称
        end.name =@"坂田地铁站";
        //指定调启导航的app名称
        para.appName = [NSString stringWithFormat:@"%@", @"baiDuDemo"];
        //调启web导航    
        [BMKNavigation openBaiduMapNavigation:para];
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    
}


@end



相关文章
|
3月前
|
存储 Cloud Native Docker
百度搜索:蓝易云【云原生之使用Docker部署Notepad个人任务管理工具】
这样,你就成功地使用Docker部署了Notepad个人任务管理工具。通过Docker部署Notepad可以使应用的安装和配置更加便捷,并且可以隔离应用环境,避免影响到宿主机的系统。希望以上教程对你有所帮助!如果你有其他问题,请随时继续提问。
56 0
|
4月前
|
Devops 网络安全 Docker
百度搜索:蓝易云【DevOps系列文章之Docker部署web ssh工具sshwifty教程。】
同时,了解DevOps和Docker的基本原理和概念也对你进行部署和管理这样的工具非常有帮助。你可以进一步研究Docker容器化技术和相关的DevOps实践,以更好地理解和应用这些概念。
55 0
|
5月前
|
Java
百度搜索:蓝易云【hutool Http 工具发送POST请求的几种方式。】
以上是使用Hutool发送POST请求的几种方式。根据实际需求和代码复杂度,选择合适的方式来发送POST请求。
171 0
|
6月前
|
NoSQL 关系型数据库 MySQL
百度搜索:蓝易云 ,【Linux工具】-yum/gdb使用教程!
这些是yum和gdb的基本使用教程。希望对您有所帮助!请注意,这只是一个简要概述,这些工具具有更多功能和选项,您可以查阅相关的文档和资料以获取更详细的信息和指导。
59 0
|
7月前
|
缓存 NoSQL Linux
百度搜索:蓝易云【【Linux工具】yum和gdb详细使用教程。】
以上是 yum 和 gdb 的简单使用教程。使用这些工具可以方便地进行软件包管理和程序调试。如需了解更多命令和功能,请参考它们的官方文档或使用相应的帮助命令。
591 0
|
9月前
|
机器学习/深度学习 定位技术 容器
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
157 0
|
6月前
|
Linux
百度搜索:蓝易云【如何在Linux系统安装文件同步工具:FreeFileSync?】
请注意,具体安装步骤可能会因不同的Linux发行版而有所差异。如果遇到任何问题,建议查阅FreeFileSync的官方文档或论坛,其中可能会提供更详细的安装说明和支持信息。
80 3
|
3月前
|
监控 Ubuntu
百度搜索:蓝易云【如何使用各种工具和命令来检查Ubuntu中的CPU使用情况?】
这些工具和命令可以帮助你实时监控和检查Ubuntu系统中的CPU使用情况。你可以根据需要选择合适的工具来查看CPU使用情况,并根据情况采取相应的措施来优化系统性能。
58 1
|
3月前
|
传感器 监控 自动驾驶
百度Apollo :自动驾驶全新工具Dreamview+,便捷灵活更丰富
百度Apollo :自动驾驶全新工具Dreamview+,便捷灵活更丰富
29 0
|
4月前
|
数据可视化 开发工具 git
Git【实践 01】使用Git工具托管本地代码到GitHub简单易懂的图文教程(含Git+第三方工具TortoiseGit+中文语言包百度云盘资源)
Git【实践 01】使用Git工具托管本地代码到GitHub简单易懂的图文教程(含Git+第三方工具TortoiseGit+中文语言包百度云盘资源)
48 0