IOS第三方地图
百度地图
高德地图
腾讯地图
苹果自带地图
谷歌地图(中国屏蔽了)
接下来我们说一下百度地图
百度地图SDK继为广大开发者开放热力图本地绘制能力之后,再次进一步开放百度自有数据的城市热力图层,帮助开发者构建形式更加多样的移动端应用。
百度城市热力图的性质及使用与实时交通图类似,只需要简单的接口调用,即可在地图上展现样式丰富的百度城市热力图。
在地图上使用百度城市热力图的核心代码如下:
//打开百度城市热力图图层(百度自有数据)[_mapView setBaiduHeatMapEnabled:YES];
//关闭百度城市热力图图层(百度自有数据)[_mapView setBaiduHeatMapEnabled:NO];
地图标注
标注
BMKAnnotation为标注对应的protocal,您可以自定义标注类实现该protocal。百度地图SDK也预置了基本的标注点(BMKPointAnnotation)和一个大头针标注View(BMKPinAnnotationView),您可以直接使用来显示标注。方法如下:
第一步,修改您的ViewController.h文件,添加以下代码,使您的
ViewController实现BMKMapViewDelegate协议:
import <UIKit/UIKit.h>
import "BMapKit.h"
@interface AnnotationDemoViewController : UIViewController <bmkmapviewdelegate> { IBOutlet BMKMapView* _mapView; }
@end
第二步,修改您的ViewController.m文件,实现BMKMapViewDelegate的_mapView:viewForAnnotation:函数,并在viewDidAppear添加标注数据对象,核心代码如下:
- (void) viewDidAppear:(BOOL)animated { // 添加一个PointAnnotation BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = 39.915;
coor.longitude = 116.404;
annotation.coordinate = coor; annotation.title = @"这里是北京"; [_mapView addAnnotation:annotation]; } // Override - (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation { if ([annotation isKindOfClass:[BMKPointAnnotation class]]) { BMKPinAnnotationView *newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"myAnnotation"]; newAnnotationView.pinColor = BMKPinAnnotationColorPurple; newAnnotationView.animatesDrop = YES;// 设置该标注点动画显示 return newAnnotationView; } return nil; }
运行后,会在地图显示对应的标注点,点击会弹出气泡,效果如图:
通过以上几步简单的操作,您就可以实现在地图上添加标注了,相应的删除标注方法如下:
if (annotation != nil) { [_mapView removeAnnotation:annotation]; }
卫星图
百度地图SDK为您提供基础矢量图和卫星图两种类型的地图,开启卫星图的方法如下:
//切换为卫星图 [_mapView setMapType:BMKMapTypeSatellite];
运行后效果如下:
由卫星图切换为普通矢量图的核心代码如下:
//切换为普通地图[_mapView setMapType:BMKMapTypeStandard];