<1>添加多个标签
方案1 for循环就好了
for (int i = 0 ; i < poiArrayList.count ; i++) {
BMKPoiInfo* poi = [poiArrayList objectAtIndex:i];
BMKPointAnnotation* item = [[BMKPointAnnotation alloc]init];
item.coordinate = poi.pt;
item.title = poi.name;
[mapView addAnnotation:item];
if(i == 0)
{
//将第一个点的坐标移到屏幕中央
mapView.centerCoordinate = poi.pt;
}
}
方案2
你说的加大头针可以这样做
创建mapview之后,设置delegate为当前vc,然后创建BMKPointAnnotation(一个BMKPointAnnotation就是一个地图上的点,如果有多个,用for 循环创建然后每一个都[self.mapView addAnnotation:annotation]),然后在mapview的delegate方法里这样
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation
{
//如果annotation为用户自身位置的小蓝点 就什么都不做
if ([annotation isKindOfClass:[BMKUserLocation class]]) {
return nil;
}
if ([annotation isKindOfClass:[GOEAnnotation class]]) {
//这是我自定义的,如果你不需要就用系统的
{
//如果annotation为用户自身位置的小蓝点 就什么都不做
if ([annotation isKindOfClass:[BMKUserLocation class]]) {
return nil;
}
if ([annotation isKindOfClass:[GOEAnnotation class]]) {
//这是我自定义的,如果你不需要就用系统的
GOEAnnotationView* newAnnotationView = [[GOEAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotation"];
return newAnnotationView;
}
return nil;
}
//设定是否总让选中的annotaion置于最前面
_mapView.isSelectedAnnotationViewFront = YES;
<2>把经纬度转换为百度经纬度
<3>报错 _kCLLocationAccuracyBest(位置经度)的解决方案"
"_kCLDistanceFilterNone"
, referenced from:
-[LocationViewController viewDidLoad] in LocationViewController.o
"_kCLLocationAccuracyBest" , referenced from:
-[LocationViewController viewDidLoad] in LocationViewController.o
"_kCLLocationAccuracyBest" , referenced from:
解决:点击工程,在主界面中点击Build Phases,点开 Link Binary With Libraries,点击添加按钮“+”,加入CoreLocation.framework
<4>关于xcode6 ios8无法定位的问题
1.
代码中加入
调用请求:
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
2. 在 info.plist里加入:
NSLocationWhenInUseDescription,允许在前台获取GPS的描述
NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述