iOS_SN_地图的使用(3)

地图的定位,记得不用定位的时候要关掉定位不然会一直定位,使电量使用过快。

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 0, kwidth, kheigth)];
    //    [self.mapView setZoomLevel:14];
    [self.view addSubview:self.mapView];

    //初始化BMKLocationService
    _locService = [[BMKLocationService alloc]init];
    _locService.delegate = self;
    //启动LocationService
    [_locService startUserLocationService];

}

//实现相关delegate 处理位置信息更新
//处理方向变更信息
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
{
    //NSLog(@"heading is %@",userLocation.heading);

    NSLog(@"%@--%@--%f--%f",userLocation.title,userLocation.subtitle,userLocation.location.altitude,userLocation.location.altitude);

}
//处理位置坐标更新
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{

    _mapView.showsUserLocation = YES;//显示定位图层
    [_mapView updateLocationData:userLocation];

    NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
}

  自定义大头针,要先自定义大头针模型,其核心代码如下:

- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation
{
    static NSString *AnnotationViewID = @"annotationViewID";
    MyPointAnnotation *myAnnotation = (MyPointAnnotation *)annotation;
    MyAnnotationView *annotationView = (MyAnnotationView *)[view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
    if (annotationView == nil)
    {
        annotationView = [[MyAnnotationView alloc] initWithFrame:CGRectMake(0, 0, 27, 30) viewForAnnotation:myAnnotation reuseIdentifier:AnnotationViewID];
        annotationView.image = [UIImage imageNamed:@"定位.png"];
    }
    else
    {
        annotationView.myAnnotation = myAnnotation;
        [annotationView setNeedsLayout];
    }
    annotationView.annotation = myAnnotation;
    annotationView.canShowCallout = true;
    return annotationView;
}

  下面有一个整体的demo会贴出来。

时间: 2024-12-26 18:52:28

iOS_SN_地图的使用(3)的相关文章

iOS_SN_百度地图基本使用(1)

上次用了一次百度地图,一直没有记笔记,今天记一笔. 以前没有用过百度地图的时候,听做这方面的朋友说百度地图有不少的坑,但是我做的时候没有遇到太大的坑,主要是要注意官方文档的注意事项,还有配置环境开发中的各个选项. 也不知道是什么原因,在配置plist 文件的时候做第一个demo的时候配置很成功,但是在实际的项目中不知道为什么那里没有配置好,重做了几次都没有做好,这里遇到的坑比较打吧,最后把配置成功的plist文件替换实际项目中的plist再把APP名字和bundle ID等字段替换,最后成功了.

百度地图API实现批量地址解析

1.前言 写这篇文章的原因是最近做一个GIS项目在网上爬取了一些数据,无奈只有地址的文字信息没有坐标信息,如何把信息显现在地图上呢?很纠结啊,查看了一下百度地图API惊奇的发现百度提供了地址解析的API,然后查看了他的Demo后豁然开朗,所以动手将自己的文字信息数据进行解析坐标信息.下面开始讲解. 2.方案 (1)自己数据库中的数据 (2)百度地图API Demo <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

js中实现高德地图坐标经纬度转百度地图坐标

1 function tobdMap(x, y) { 2 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; 3 var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); 4 var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); 5 var bd_lon = z * Math.cos(theta) + 0.00

DEDE5.7如何制作网站地图?

DEDE用的人很多,可能大家在使用的过程中会碰到一些问 题,这很正常的,今天我们来讲讲DEDE5.7如何制作网站地图,其实网站地图分两种,一种做给网友看的,方便网友可以方便地找到自己想浏览的内容,另外 一种是做给搜索引擎蜘蛛看,方便蜘蛛在你网站上面抓取内容.    当然,我们这里讲的主要是针对蜘蛛的,因为DEDE默认的就有针对用户的网站地图,主要是以栏目的形式展现,这个可以在DEDE后台自行生成.其实大家印象当中的网站地图是XML格式的,一般命名成sitemap.xml,接下来进入正题.    

baidu地图:实现多点连线渲染

<script type="text/javascript"> var points = [ {"Lng":120.17787645967861,"Lat":30.251826748722667}, {"Lng":120.17786646842835,"Lat":30.251826580357911} ]; </script> <!DOCTYPE html> <ht

Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信

Vue2.0与 [百度地图] 结合使用: 1.vue init webpack-simple vue-baidu-map 2.下载axios cnpm install axios; 3.在main.js中引入axios,并使用 import axios from 'axios' /* 把axios对象挂到Vue实例上面,其他组件在使用axios的时候直接 this.$http就可以了 */ Vue.prototype.$http = axios; 4.引入百度地图的js秘钥--->最好在inde

谷歌地图下载拼接软件

选择多边形框选下载 特别BIGEMAP地图下载器提供了多种选择的下载方式,方便用户得到不同的应用当中: 1.矩形框选择区域下载 2.多边形选择区域下载 3.根据行政区(省市县区)域边界选择下载 4.导入外部边界文件下载(支持kml/kmz/shp格式) 5.标准分幅下载 6.指定矩形框经纬度范围下载 本文主要介绍应用多边形如何下载想要的区域 第一步:选在多边形工具 打开BIGEMAP软件,在软件的最上面工具栏选择[],单机左键选择. 第二步:通过单击[鼠标左键]在地图上任意位置开始绘制多边形,选

使用ros hector_mapping建地图

ros中建地图方式有两种: 首先1.首先下载hector_slam包到你工作空间的src下 命令: cd ~/catkin/src git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git cd .. catkin_make 在~/catkin_ws/src/hector_slam/hector_slam_launch/launch/新建一个demo.launch <?xml version="1.0"?&