地图sdk厂商
百度地图
苹果地图
高德地图
谷歌地图
腾讯地图(SOSO地图)
阿里云地图
搜狗地图
天地图
mapbar地图(图吧)
MapABC地图
51地图
地图使用
1、定义大头针和大头针弹出框
地点标注:在指定坐标点上显示点的名称和内容信息
绘制标注:addAnnotation
- (nullable MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
绘制路线:addOverlay
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
绘制区域框
MKAnnotationView
MKPinAnnotationView
MKMapView
MKOverlayView
MKOverlayPathView
MKCircleView
MKPolygonView
MKPolylineView
MKOverlayRenderer
MKTileOverlayRenderer
MKOverlayPathRenderer
MKPolylineRenderer
MKCircleRenderer
MKPolygonRenderer
自定大头针图片,大头针弹出框显示文字,弹出框显示附加视图,弹出框点击事件。
2、 设置地图显示位置点、地图显示区域。
中心点经纬度, 经度和纬度的偏移量。
中心点经纬度,距离半径, 米为单位。
MKMapView
setRegion/setCenterCoordinate
3、 让地图自动获取当前中心点位置
4、地图相关属性
显示样式: 标准、卫星、混合、3D混合
跟踪样式
mapview.showsUserLocation=NO; //标准自身位置
mapview.showsCompass=YES; //显示地图上的指南针
mapview.showsBuildings=YES; //显示地图上的建筑物
mapview.showsScale=YES; //显示地图上的缩放比例
mapview.showsTraffic=YES; //显示地图上的交通
mapview.showsPointsOfInterest=YES; //显示地图上的POI点
mapview.userTrackingMode=({
//跟踪位置
//MKUserTrackingModeFollow;
//不跟踪
//MKUserTrackingModeNone;
//跟踪位置和方向
MKUserTrackingModeFollowWithHeading;
});
5、路线规划
MKDirections
公交、地铁线路查询
6、导航
公交、驾车、步行和骑行导航:展示指定导航模式下从起点到终点的路线规划。
直接进入驾车导航模式
MKMapItem* (^get_mkmapitem_block)(CLLocationDegrees latitude, CLLocationDegrees longitude)=^(CLLocationDegrees latitude, CLLocationDegrees longitude){
CLLocationCoordinate2D coordinate1=CLLocationCoordinate2DMake(latitude,longitude);
MKPlacemark*placemark1= [[MKPlacemark alloc] initWithCoordinate:coordinate1];
MKMapItem*item1=[[MKMapItem alloc] initWithPlacemark:placemark1];
return item1;
};
MKMapItem*item1= get_mkmapitem_block( start.latitude, start.longitude);
MKMapItem*item2= get_mkmapitem_block( end.latitude, end.longitude);
NSMutableDictionary *info = [NSMutableDictionary dictionary];
// 导航模式(驾车/走路)
info[MKLaunchOptionsDirectionsModeKey] =
// MKLaunchOptionsDirectionsModeTransit;//公交
// MKLaunchOptionsDirectionsModeWalking; //步行
// MKLaunchOptionsDirectionsModeDriving; //驾车
MKLaunchOptionsDirectionsModeDefault;//自动匹配
info[MKLaunchOptionsMapTypeKey]=@(MKMapTypeHybrid);
info[MKLaunchOptionsShowsTrafficKey]=@(true);
info[MKLaunchOptionsMapCenterKey]=[NSValue valueWithMKCoordinate:CLLocationCoordinate2DMake(30.3507772306,114.3144079134)];
MKCoordinateSpan span= MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(30.3507772306,114.3144079134), 1000, 1000).span;
info[MKLaunchOptionsMapSpanKey]=[NSValue valueWithMKCoordinateSpan:span];
[MKMapItem openMapsWithItems:@[item2,item1] launchOptions:info];
7、坐标系转换
(1)、wgs84表示gps获取的坐标: 一切正常工作的GPS或GPS芯片,谷歌地球
(2)、gcj02表示经过国测局加密的坐标:高德、腾讯、阿里云、MapABC、51ditu地图、谷歌中国(使用高得数据)、苹果中国(使用高德数据)
(3)、bd09ll表示百度经纬度坐标:百度
(4),bd09mc表示百度墨卡托坐标(伪墨卡托坐标系)
8、POI(地点)搜索、POI详情页展示
周边搜索、地点搜索
9、URI方式第三方地图调用
百度
http://lbsyun.baidu.com/index.php?title=uri/api/web
http://lbsyun.baidu.com/index.php?title=uri/api/ios