iOS 百度地图显示指定的位置

今天做到一个需求是传入 经纬度,mapView 显示 对应的点并标上标注,一开始一直在找 mapView updateUserLocation 类似的方法去传入经纬度,未果。晚上回来了想想,不就是标注大头针,然后把它作为地图的中心点显示在地图上。用setCenterCoordinate:方法就可以了(高德地图setCenterCoordinate:)。哎,这么简单的问题还花费那么长时间~可能是明天就过节了,有点小机动


update time: 2016/11/25

需求是在cell中显示 指定位置的地图位置,但地图view不做任何响应时间,点击cell,跳转到地图界面。

效果类似下图:
iOS 百度地图显示指定的位置_第1张图片

此时有两种方案:

第一:显示百度地图mapView

通过百度地图的view添加大头针,

/     添加一个PointAnnotation
BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = [self.latitudeTF.text floatValue];
coor.longitude = [self.longitudeTF.text floatValue];
annotation.coordinate = coor;
//    annotation.title = @"这里是北京";
[self.mapView addAnnotation:annotation];

将大头针放在地图中心点,

[self.mapView setCenterCoordinate:coor animated:YES];

取消mapView的任何响应事件
self.mapView.gesturesEnabled = NO;


第二 :显示一个imageView,通过请求百度地图静态图片的接口,拿到 图片data。

接口:http://api.map.baidu.com/staticimage

请求类型:GET

传入参数:

center: 地图中心点位置,参数可以为经纬度坐标或名称。坐标格式:lng<经度>,lat<纬度>,例如116.43213,38.76623。
zoom: 高清图范围[3, 18];低清图范围[3,19]
markers: 标注,可通过经纬度或地址/地名描述;多个标注之间用竖线分隔。
更多参数请访问百度静态图片 或 静态图API

将拿回来的responseObject 直接附给imageView的image即可:

imageView.image = [UIImage imageWithData:responseObject];

总结:这两种方法对比很明显,第一种使用百度SDK Momery占用 大并且代码写起来设置内容多,但是可以无限制次使用/天;第二种方便简洁,而且Momery占用小,代码设置少,但是有限制每天的请求次数:

请求频率:无限制
URL长度:2048
点标记的数量:50个
调用次数:默认限制为100万次/天,并发100qps

大家根据需求来使用吧。

你可能感兴趣的:(iOS)