百度地图之基础地图

简介:

在做项目集成百度地图SDK时,配置开发环境时,可以下载全新.framework形式静态库,传统.a形式静态库,在用.a形式静态库时在第二步需要引入静态库文件 ,由于有模拟器和真机两个静态库,集成文档写了三种引入,第二种需要讲两个静态库合并,集成文档写的也很清楚,自己也算是比照着集成文档按部就班的操作就可以了。具体请参考:http://developer.baidu.com/map/index.php?title=iossdk 在这我也就是操作记录一下。下面是.a 静态库的合并

下面是framework的合并 两者区别:.a是生成到一个新.a  .framework的生成时覆盖旧的



//
//  ViewController.m
//  baiDuDemo
//
//  Created by City--Online on 15/5/26.
//  Copyright (c) 2015年 XQB. All rights reserved.
//

#import "ViewController.h"
#import "BMKMapView.h"
#import "BMapKit.h"
@interface ViewController ()<BMKMapViewDelegate>
@property(nonatomic,strong)BMKMapView *mapView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _mapView=[[BMKMapView alloc]initWithFrame:self.view.bounds];
    //地图类型 
    _mapView.mapType=BMKMapTypeStandard;
    //实时路况
//    _mapView.trafficEnabled=YES;
    //城市热力图
//    _mapView.baiduHeatMapEnabled=YES;
    //
    CLLocationCoordinate2D coor;
    coor.latitude=22.5538;
    coor.longitude=114.0672;
    //设置中心点
    _mapView.centerCoordinate=coor;
    
    
    // 添加折线覆盖物
    CLLocationCoordinate2D coors[2] = {0};
    coors[0].latitude = 22.7538;
    coors[0].longitude = 114.0672;
    coors[1].latitude = 23.0538;
    coors[1].longitude = 114.2672;
    BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
    [_mapView addOverlay:polyline];
    
    
    //添加弧线覆盖物
    //传入的坐标顺序为起点、途经点、终点
    CLLocationCoordinate2D coords[3] = {0};
    coords[0].latitude = 22.7538;
    coords[0].longitude = 114.0672;
    coords[1].latitude = 22.3538;
    coords[1].longitude = 114.2672;
    coords[2].latitude = 22.0538;
    coords[2].longitude = 114.2872;
    BMKArcline *arcline = [BMKArcline arclineWithCoordinates:coords];
    [_mapView addOverlay:arcline];
    
    // 添加多边形覆盖物
    CLLocationCoordinate2D coorss[3] = {0};
    coorss[0].latitude = 22.7538;
    coorss[0].longitude = 114.0672;
    coorss[1].latitude = 22.3538;
    coorss[1].longitude = 114.2672;
    coorss[2].latitude = 22.0538;
    coorss[2].longitude = 114.2872;
    BMKPolygon* polygon = [BMKPolygon polygonWithCoordinates:coorss count:3];
    [_mapView addOverlay:polygon];
    
    // 添加圆形覆盖物
    CLLocationCoordinate2D coorcircle;
    coorcircle.latitude = 22.5538;
    coorcircle.longitude = 114.0672;
    BMKCircle* circle = [BMKCircle circleWithCenterCoordinate:coorcircle radius:5000];
    
    [_mapView addOverlay:circle];
    
    
    //添加图片图层覆盖物(第一种:根据指定经纬度坐标生成)
    CLLocationCoordinate2D coorground;
    coorground.latitude = 22.0038;
    coorground.longitude = 114.0672;
    BMKGroundOverlay* ground = [BMKGroundOverlay groundOverlayWithPosition:coorground
                                                                 zoomLevel:11 anchor:CGPointMake(0.0f,0.0f)
                                                                      icon:[UIImage imageNamed:@"1.jpg"]];
    [_mapView addOverlay:ground];
    
    //添加图片图层覆盖物(第二种:根据指定区域生成)
    CLLocationCoordinate2D coordground[2] = {0};
    coordground[0].latitude = 22.2538;
    coordground[0].longitude = 114.0672;
    coordground[1].latitude = 22.2038;
    coordground[1].longitude = 114.1072;
    BMKCoordinateBounds bound;
    bound.southWest = coordground[0];
    bound.northEast = coordground[1];
    BMKGroundOverlay* ground2 = [BMKGroundOverlay groundOverlayWithBounds: bound
                                                                     icon:[UIImage imageNamed:@"1.jpg"]];
    [_mapView addOverlay:ground2];
    
    [self.view addSubview:_mapView];
    
   
}
//根据overlay生成对应的View

- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id <BMKOverlay>)overlay{
    if ([overlay isKindOfClass:[BMKPolyline class]]){
        BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay] ;
        polylineView.strokeColor = [[UIColor redColor] colorWithAlphaComponent:1];
        polylineView.lineWidth = 5.0;
        
        return polylineView;
    }
    else if ([overlay isKindOfClass:[BMKArcline class]])
    {
        BMKArclineView* arclineView = [[BMKArclineView alloc] initWithOverlay:overlay] ;
        arclineView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.5];
        arclineView.lineWidth = 5.0;
        
        return arclineView;
    }
    else if ([overlay isKindOfClass:[BMKPolygon class]]){
        BMKPolygonView* polygonView = [[BMKPolygonView alloc] initWithOverlay:overlay];
        polygonView.strokeColor = [[UIColor purpleColor] colorWithAlphaComponent:1];
        polygonView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
        polygonView.lineWidth = 5.0;
        
        return polygonView;
    }
    else if ([overlay isKindOfClass:[BMKCircle class]]){
        BMKCircleView* circleView = [[BMKCircleView alloc] initWithOverlay:overlay];
        circleView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.5];
        circleView.strokeColor = [[UIColor yellowColor] colorWithAlphaComponent:0.5];
        circleView.lineWidth = 10.0;
        
        return circleView;
    }
    else if ([overlay isKindOfClass:[BMKGroundOverlay class]]){
        BMKGroundOverlayView* groundView = [[BMKGroundOverlayView alloc] initWithOverlay:overlay] ;
        groundView.backgroundColor=[UIColor yellowColor];
        return groundView;
    }
    return nil;
}


-(void)viewDidAppear:(BOOL)animated
{
    BMKPointAnnotation *pointAnnotation=[[BMKPointAnnotation alloc]init];
    CLLocationCoordinate2D coor;
    coor.latitude=22.5538;
    coor.longitude=114.0672;
    pointAnnotation.coordinate=coor;
    pointAnnotation.title=@"这里是少年宫";
    [_mapView addAnnotation:pointAnnotation];
    //移除大头针
//    if (annotation != nil) {
//        [_mapView removeAnnotation:annotation];
//    }
}
//添加大头针
- (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;
}
-(void)viewWillAppear:(BOOL)animated
{
    [_mapView viewWillAppear];
    _mapView.delegate=self;
}
-(void)viewWillDisappear:(BOOL)animated
{
    [_mapView viewWillDisappear];
    _mapView.delegate=nil;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end




相关文章
|
定位技术 API 网络架构
地图图层接入:从mapbox转向cesium
由于地图坐标系的不统一,地图图商提供的图层服务也各有特色,在图层对接的开发过程中常会遇到许多坑,从二维图层到三维图层,地图引擎mapbox再到cesium,本文将分享笔者在近期地图图层接入过程中总结的一些经验。
3699 10
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
973 0
|
7月前
|
JavaScript 搜索推荐 定位技术
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
|
定位技术
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
330 0
|
数据可视化 定位技术
漏刻有时数据可视化解决方案:geo坐标地图、svg地图和图片热点地图的使用比较方案
漏刻有时数据可视化解决方案:geo坐标地图、svg地图和图片热点地图的使用比较方案
123 0
|
定位技术
百度地图使用 ->展示地图一
百度地图使用 ->展示地图一
106 0
|
定位技术 API
Cesium开发:限制地图浏览范围
Cesium开发:限制地图浏览范围
765 1
|
数据可视化 JavaScript 定位技术
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
580 0
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
158 0
|
小程序 定位技术
小程序地图转百度地图坐标
小程序地图转百度地图坐标
164 0