亲,注意,百度地图需要联网测试才不会。。。

简介: 亲,注意,百度地图需要联网测试才不会。。。太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

亲,注意,百度地图需要联网测试才不会。。。

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


近期在 iOS 下使用百度地图定位功能,由于公司的网关不稳定,经常导致局域网通讯障碍,故而使用小WIFI路由器搭了个局域网环境,确保开发环境、手机和服务器均在小环境内可以稳定工作。(我的天,这什么情况。。。)

可以在定位的过程中,发现那个经常见到的“联网成功”和“授权成功”均不见了,取而代之是2 和 -300.(XCode 的日志输出区会有输出)

后来偶尔切换到公网,查资料,忘切回来了,居然能正常工作了,才意识到这个问题根源。

特意把小WIFI的WAN口插到公交交换机上,再测试就OK了,断开那根救命线,这边怎么测试都是无法定位,而且两个日志输出区的标识也由数字代替了。

另外,反向地理解析,是一定要有网络连接的,以便从百度服务器获得指定经纬度对应的省、市、区(县)、街、号。。。。。。




定位功能

简介

由于系统原因,iOS不允许使用第三方定位,因此地图SDK中的定位方法,本质上是对原生定位的二次封装。通过封装,开发者可更便捷的使用。此外,地图SDK中还提供了相应的定位图层(支持定位三态效果),帮助开发者显示当前位置信息。

注:自iOS8起,系统定位功能进行了升级,SDK为了实现最新的适配,自v2.5.0起也做了相应的修改,开发者在使用定位功能之前,需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):

NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述

NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

获取位置信息

定位功能可以和地图功能分离使用,单独的定位功能使用方式如下:

-(void)viewDidLoad  
{
    //设置定位精确度,默认:kCLLocationAccuracyBest
    [BMKLocationServicesetLocationDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    //指定最小距离更新(米),默认:kCLDistanceFilterNone
    [BMKLocationServicesetLocationDistanceFilter:100.f];
 
    //初始化BMKLocationService  
    _locService = [[BMKLocationService alloc]init];  
    _locService.delegate = self;  
    //启动LocationService  
    [_locService startUserLocationService];  
}  
//实现相关delegate 处理位置信息更新  
//处理方向变更信息  
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation  
{  
    //NSLog(@"heading is %@",userLocation.heading);  
}  
//处理位置坐标更新  
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation  
{  
    //NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);  
}

展示定位信息

展示定位信息的功能位于“地图和覆盖物”这个功能模块,开发者在使用时要注意选择。核心代码如下:(完整信息请参考Demo)

//普通态  
//以下_mapView为BMKMapView对象  
_mapView.showsUserLocation = YES;//显示定位图层  
[_mapView updateLocationData:userLocation];




地理编码

地理编码指的是将地址信息建立空间坐标关系的过程。又可分为正向地图编码和反向地图编码。

正向地理编码指的是由地址信息转换为坐标点的过程。

反向地理编码服务实现了将地球表面的地址坐标转换为标准地址的过程。反向地理编码提供了坐标定位引擎,帮助用户通过地面某个地物的坐标值来反向查询得到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。通过丰富的标准地址库中的数据,可帮助用户在进行移动端查询、商业分析、规划分析等领域创造无限价值。

正向地理编码和反向地理编码示例如下:

-(void)viewDidLoad    
{      
    //初始化检索对象    
    _searcher =[[BMKGeoCodeSearch alloc]init];    
    _searcher.delegate = self;      
    BMKGeoCodeSearchOption *geoCodeSearchOption = [[BMKGeoCodeSearchOption alloc]init];    
    geoCodeSearchOption.city= @"北京市";    
    geocodeSearchOption.address = @"海淀区上地10街10号";    
    BOOL flag = [_searcher geoCode:geoCodeSearchOption];    
    [geoCodeSearchOption release];    
    if(flag)    
    {    
        NSLog(@"geo检索发送成功");    
    }    
    else    
    {    
        NSLog(@"geo检索发送失败");    
    }    
 
    //发起反向地理编码检索    
    //CLLocationCoordinate2D pt = (CLLocationCoordinate2D){39.915, 116.404};    
    //BMKReverseGeoCodeOption *reverseGeoCodeSearchOption = [[  
    //BMKReverseGeoCodeOption alloc]init];  
    //reverseGeoCodeSearchOption.reverseGeoPoint = pt;    
    //BOOL flag = [_searcher reverseGeoCode:reverseGeoCodeSearchOption];    
    //[reverseGeoCodeSearchOption release];    
    //if(flag)    
    //{    
    //  NSLog(@"反geo检索发送成功");    
    //}    
    //else    
    //{    
    //  NSLog(@"反geo检索发送失败");    
    //}    
 }    
 
//实现Deleage处理回调结果    
//接收正向编码结果   
 
- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error{    
    if (error == BMK_SEARCH_NO_ERROR) {    
         //在此处理正常结果    
    }    
    else {    
        NSLog(@"抱歉,未找到结果");    
    }    
}    
 
//接收反向地理编码结果    
//-(void) onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:  
//(BMKReverseGeoCodeResult *)result   
//errorCode:(BMKSearchErrorCode)error{    
//  if (error == BMK_SEARCH_NO_ERROR) {    
//      在此处理正常结果    
//  }    
//  else {    
//      NSLog(@"抱歉,未找到结果");    
//  }    
//}    
 
//不使用时将delegate设置为 nil      
-(void)viewWillDisappear:(BOOL)animated      
{      
    _searcher.delegate = nil;      
}
目录
相关文章
|
6月前
|
Ubuntu Cloud Native 测试技术
百度搜索:蓝易云【云原生之使用Docker部署ubuntu测试环境】
请注意,以上步骤仅是简单的使用Docker部署Ubuntu测试环境的示例。在实际应用中,您可能需要根据测试需求和应用场景进行更多的配置和优化。同时,在退出容器时,容器并未删除,您可以使用 `docker rm <容器名称>`命令来删除容器。在进行测试时,请谨慎操作,并确保对Docker的使用有一定的了解,以避免不必要的问题。
71 2
|
6月前
|
测试技术 UED
对百度搜索页面设计的测试用例设计
对百度搜索页面设计的测试用例设计
216 0
|
6月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
2244 0
|
存储 缓存 Linux
百度搜索:蓝易云【如何在Linux系统服务器中测试存储/磁盘I/O性能?】
这些工具可以帮助你测试磁盘的读取和写入性能,并提供各种性能指标和统计数据。请注意,在运行这些测试时,确保没有重要的数据存储在被测试的磁盘上,并谨慎操作以避免对系统和数据造成不必要的影响。
117 0
|
6月前
|
消息中间件 测试技术
百度搜索:蓝易云【使用JMeter安装RabbitMQ测试插件的步骤】
以上是安装RabbitMQ测试插件的基本步骤。根据您的具体需求和JMeter版本,可能会有一些细微的差异,但总体流程应该是相似的。
127 1
|
6月前
|
测试技术 Linux
百度搜索:蓝易云【【Linux】硬件性能测试工具安装。】
以上是一些常见的硬件性能测试工具,你可以根据需要选择适合的工具进行安装和使用。注意,在安装和运行这些工具时,请遵循官方文档和指南,并在测试过程中小心操作,以避免对系统造成不良影响。
111 1
|
6月前
|
Ubuntu 数据库 数据安全/隐私保护
百度搜索:蓝易云【ubuntu中编译安装opensips并测试】
以上是在Ubuntu中编译安装OpenSIPS并进行测试的基本步骤。请注意,这是一个简化的指南,实际操作中可能会有一些特定的配置和调整。建议参考OpenSIPS官方文档或其他详细教程以获得更全面和准确的信息。
100 1
|
11月前
|
Java 测试技术 持续交付
百度搜索:蓝易云【NetMock简介:简化 Java,Android和Kotlin多平台中的HTTP请求测试?】
使用NetMock,您可以在单元测试、集成测试和端到端测试中轻松地模拟和验证HTTP请求和响应,而无需实际发送请求到外部服务。这样可以提高测试的可靠性和可控性,并加快测试执行的速度。无论是在开发过程中还是在持续集成环境中,NetMock都可以帮助您更轻松地进行HTTP请求测试,提高代码质量和稳定性。
64 1
|
12月前
|
缓存 Ubuntu Linux
百度搜索:蓝易云【Varnish开源HTTP反向代理缓存服务器、部署安装、测试】
通过按照上述步骤部署和配置Varnish,您可以将其作为反向代理缓存服务器来提高Web应用程序的性能和响应速度。记住,在实际部署中,您可能需要进一步调整Varnish的配置以满足您的具体需求。
92 2
|
12月前
|
缓存 Linux 开发者
百度搜索:蓝易云【Varnish开源HTTP反向代理缓存服务器、部署安装、测试。】
通过以上步骤,你可以成功部署和安装Varnish,并对Web应用程序进行测试。请根据具体需求进行适当的配置和调整,以确保Varnish能够按预期工作并提升Web应用程序的性能。
67 0