IOS 百度地图定位,显示地理位置

2024-08-23 00:38

本文主要是介绍IOS 百度地图定位,显示地理位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近公司要做一个类似与美团的东西,让我用百度地图来进行定位,并显示地理信息.

预览图
预览图

那么我们要如何做呢,直接上代码

  • 先看看包结构,要把需要用到的库都要引入进来.
    包结构
    包结构
    注意:appdelegate.mm 后缀一定要加个m
    不然的话编译会不通过,好像是因为它的编译原理是c++还是怎样,要详细了解的可以百度.
  • 那么来看控制器代码
    _locService = [[BMKLocationService alloc]init];//定位功能的初始化_locService.delegate = self;//设置代理位self//启动LocationService[_locService startUserLocationService];//启动定位服务_geocodesearch = [[BMKGeoCodeSearch alloc] init];//编码服务的初始化(就是获取经纬度,或者获取地理位置服务)_geocodesearch.delegate = self;//设置代理为self

这段代码需要放在viewDidLoad里面
启动定位服务后,_locService.userLocation.location.coordinate就应该会有值了,也就是说经度和纬度都可以获取出来了.

  • 开始定位的点击事件,将刚刚定位的经纬度取出来并设置lable的值
    -(void)heheda:(UIButton *)btn{NSLog(@"进入普通定位态");NSLog(@"定位的经度:%f,定位的纬度:%f",_locService.userLocation.location.coordinate.longitude,_locService.userLocation.location.coordinate.latitude);self.lon.text = [NSString stringWithFormat:@"%f",_locService.userLocation.location.coordinate.longitude];[self.lat setText:[NSString stringWithFormat:@"%f",_locService.userLocation.location.coordinate.latitude]];
    }
  • 获取地址的点击事件
-(void)onClickReverseGeocode  //发送反编码请求的.
{isGeoSearch = false;CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0, 0};//初始化if (_locService.userLocation.location.coordinate.longitude!= 0&& _locService.userLocation.location.coordinate.latitude!= 0) {//如果还没有给pt赋值,那就将当前的经纬度赋值给ptpt = (CLLocationCoordinate2D){_locService.userLocation.location.coordinate.latitude,_locService.userLocation.location.coordinate.longitude};}BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];//初始化反编码请求reverseGeocodeSearchOption.reverseGeoPoint = pt;//设置反编码的店为ptBOOL flag = [_geocodesearch reverseGeoCode:reverseGeocodeSearchOption];//发送反编码请求.并返回是否成功if(flag){NSLog(@"反geo检索发送成功");}else{NSLog(@"反geo检索发送失败");}}
  • 如果发送成功,百度将会返回东西给你,然后你可以在下面这个代理函数中处理

    -(void) onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
    {if (error == 0) {BMKPointAnnotation* item = [[BMKPointAnnotation alloc]init];item.coordinate = result.location;item.title = result.address;NSString* titleStr;NSString* showmeg;titleStr = @"反向地理编码";showmeg = [NSString stringWithFormat:@"%@",item.title];self.addr.text = showmeg;UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:titleStr message:showmeg delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定",nil];[myAlertView show];}
    }
    效果图
    效果图
  • 有不明白的还是可以下载demo来看看,记得点个star哦
    https://github.com/ouzhenxuan/baiduMap
    如果喜欢请给个赞.



文/区振轩(简书作者)
原文链接:http://www.jianshu.com/p/dc18c6b5be8b
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

这篇关于IOS 百度地图定位,显示地理位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1097862

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL