前言,要仿微信、qq搜索附近的位置,第一次使用百度地图SDK,首先获取到当前的经纬度,然后再利用反向地理编码检索,但是仅仅只能获取10条附近的位置,想利用POI检索位置信息,但是POI需要使用关键字来搜索,关键字只能是一个,所以只能搜索到一系列相关的位置信息,最后搜索到腾讯的SDK可以搜索附近的位置,可以不使用关键字。
下面介绍如何使用腾讯地图的sdk
1. 下载腾讯地图SDK http://lbs.qq.com/ios_v1/index.html
2. 将腾讯SDK集成到自己的工程中 http://lbs.qq.com/ios_v1/guide-helloworld.html
并初始化它 [QMapServices sharedServices].apiKey = @"您的key";
3. 使用腾讯地图提供的方法,获取当前的经纬度
(1)引入头文件#import <QMapKit/QMapKit.h>
(2)添加代理 QMapViewDelegate
(3)初始化mapview
self.mapView = [[QMapView alloc] init];
self.mapView.delegate = self;
[self.mapView setShowsUserLocation:YES]; //开启服务
(4)在代理函数中,获取经纬度
// 腾讯地图 delete
- (void)mapViewWillStartLocatingUser:(QMapView *)mapView
{
//获取开始定位的状态
}
- (void)mapViewDidStopLocatingUser:(QMapView *)mapView
{
//获取停止定位的状态
}
- (void)mapView:(QMapView *)mapView didUpdateUserLocation:(QUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation
{
//刷新位置 如果这块不关闭的话,会一直调用这个代理函数
[self.mapView setShowsUserLocation:NO];
_longitude = [NSNumber numberWithDouble:userLocation.location.coordinate.longitude];
_latitude = [NSNumber numberWithDouble:userLocation.location.coordinate.latitude];
}
(5)根据获取到的经纬度,调用逆地址解析,查询所在的城市,有一个ip地位的,但是不知道输入什么ip地址进去查询,可以试试 ,参考网址:http://lbs.qq.com/webservice_v1/guide-gcoder.html
(6)根据获取到的经纬度,使用地点搜索的api,查询附近的位置,keyword参数可以直接去掉,参考网址:http://lbs.qq.com/webservice_v1/guide-search.html
注:nearby的所带的参数格式 nearby(lat,lng<中心坐标>,radius<半径/米>),当时经纬度填反了,找了很长时间