AppleMap苹果原生地图

//使用苹果原生地图
#import "RootViewController.h"
#import <MapKit/MapKit.h>
@interface RootViewController ()<MKMapViewDelegate,CLLocationManagerDelegate>
{
    //声明地图视图
    MKMapView *mapview;
    //供定位使用的对象
    CLLocationManager *manager;
}
@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self createUI];
}
-(void)createUI{
    mapview=[[MKMapView alloc] initWithFrame:self.view.frame];
    mapview.delegate=self;     //设置代理
    [self.view addSubview:mapview];
    //地图在显示时,显示的是指定的地理位置      39.896304, 116.410103
    //经纬度如何确定,打开谷歌地图,找到要定位的位置,点击复制经纬度    东软(38.889722,121.535167)
    //确定坐标
    CLLocationCoordinate2D coor=CLLocationCoordinate2DMake(38.889722, 121.535167);
    //确定放大倍数
    MKCoordinateSpan span=MKCoordinateSpanMake(0.1, 0.1);
    //关联坐标位置和放大倍数
    MKCoordinateRegion region=MKCoordinateRegionMake(coor, span);
    //把设置赋值给地图视图
    [mapview setRegion:region];
    //设置自己在地图上的位置
    mapview.showsUserLocation=YES;
    //让自己跟随地图走,导航
    manager=[[CLLocationManager alloc] init];
    //设置代理
    manager.delegate=self;
    //设置人走多远,回调一次地图更新函数
    manager.distanceFilter=500;
    //设置开始定位
    [manager startUpdatingLocation];
    
    UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(long_Press:)];
    [mapview addGestureRecognizer:longPress];
}
-(void)long_Press:(UIGestureRecognizer *)sender{
    //添加大头针
    //获得长按手势的中心点坐标
    CGPoint point=[sender locationInView:mapview];
    //根据获得的坐标,计算 出在地图上的经纬度(计算出的经纬度就是大头针的位置)
    CLLocationCoordinate2D coord=[mapview convertPoint:point toCoordinateFromView:mapview];
    //创建大头针
    MKPointAnnotation *pa=[[MKPointAnnotation alloc]  init];
    pa.coordinate=coord;
    [email protected]"九哥烧烤";
    [email protected]"满100送30";
    [mapview addAnnotation:pa];
}
//定制系统默认的大头针的样式
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
    //【说明】大头针的生产与单元格的复用策略相同
    MKPinAnnotationView *pin=(MKPinAnnotationView *)[mapview dequeueReusableAnnotationViewWithIdentifier:@"applemap"];
    if (pin==nil) {
        pin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"applemap"];
    }
    pin.animatesDrop=YES;
    pin.canShowCallout=YES; //显示气泡
    pin.pinColor=MKPinAnnotationColorRed;
    UIImageView *iv=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
    iv.image=[UIImage imageNamed:@"9y.png"];
    pin.leftCalloutAccessoryView=iv;//大头针左侧视图
    UIButton *btn=[UIButton buttonWithType:UIButtonTypeInfoDark];
    btn.backgroundColor=[UIColor blackColor];
    [btn setTitle:@"点我" forState:UIControlStateNormal];
    pin.rightCalloutAccessoryView=btn; //大头针右侧视图
    return pin;
}
//当使用定位导航时,地图跟随移动,根据设定的距离回调此函数
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    CLLocation *newlocation=[locations lastObject];   //获取新的坐标位置
    [UIView animateWithDuration:1 animations:^{
        //更新地图坐标
        [mapview setRegion:MKCoordinateRegionMake(newlocation.coordinate, MKCoordinateSpanMake(0.1, 0.1))];
    }];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

效果:

时间: 2024-08-07 17:16:28

AppleMap苹果原生地图的相关文章

iOS-地理坐标转换,原生地图获取的原始坐标转换为地图真实坐标

GPS以及iOS系统定位获得的坐标是地理坐标系WGS1984,Web地图一般用的坐标细是投影坐标系WGS 1984 Web Mercator,国内出于相关法律法规要求,对国内所有GPS设备及地图数据都进行了加密偏移处理,代号GCJ-02,这样GPS定位获得的坐标与地图上的位置刚好对应上,特殊的是百度地图在这基础上又进行一次偏移,所以在处理系统定位坐标及相关地图SDK坐标时需要转换处理下,根据网络资源,目前有一些公开的转换算法. 系统定位坐标显示在原生地图.谷歌地图或高德地图–WGS1984转GC

IOS原生地图与高德地图

原生地图 1.什么是LBS LBS: 基于位置的服务   Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位      2.基站定位      3.WIFI定位 3.框架 MapKit:地图框架,显示地图 CoreLocation:定位框架,没有地图时也可以使用定位. 4.如何使用原生地图<MapKit> 和定位<CoreLocation> MapKit: 1) 初始化MapView _map

iOS 原生地图地理编码与反地理编码

当我们要在App实现功能:输入地名,编码为经纬度,实现导航功能. 那么,我需要用到原生地图中的地理编码功能,而在Core Location中主要包含了定位.地理编码(包括反编码)功能. 在文件中导入 #import <CoreLocation/CoreLocation.h> 地理编码: /** 地理编码 */ - (void)geocoder { CLGeocoder *geocoder=[[CLGeocoder alloc]init]; NSString *addressStr = @&qu

iOS原生地图开发进阶——使用导航和附近兴趣点检索

iOS原生地图开发进阶——使用导航和附近兴趣点检索 iOS中的mapKit框架对国际化的支持非常出色.在前些篇博客中,对这个地图框架的基础用法和标注与覆盖物的添加进行了详细的介绍,这篇博客将介绍两个更加实用的功能的开发:线路导航与兴趣点搜索.前几篇博客的链接如下: 地图基础用法详解:http://my.oschina.net/u/2340880/blog/415360. 添加大头针与自定义标注:http://my.oschina.net/u/2340880/blog/415441. 添加地图覆盖

iOS原生地图开发指南续——大头针与自定义标注

iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/2340880/blog/415360系统总结了iOS原生地图框架MapKit中主体地图的设置与应用.这篇是上一篇的一个后续,总结了系统的大头针视图以及自定义标注视图的方法. 一.先来认识一个协议MKAnnotation 官方文档告诉我们,所有标注的类必须遵守这个协议.所以可以了解,标注这个概念在逻辑属

苹果原生文字转语音播报

1.CHiOSSpeech.h // // 文 件 名:CHiOSSpeech.h // // 版权所有:Copyright ? 2018年 leLight. All rights reserved. // 创 建 者:leLight // 创建日期:2018/7/30. // 文档说明:苹果原生文字转语音播报. // 修 改 人: // 修改日期: // #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundati

如何初始化一个iOS原生地图

/** 初始化一个mapView  需导入 #import <MapKit/MapKit.h> - returns: 返回一个mapView对象 */ mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0,WIDTH, HEIGHT-200)]; /** *  设置代理 */ mapView.delegate = self; /** *  设置地图类型 */ mapView.mapType = 0; /** *  设置是否可缩放

关于原生地图定位的简单操作MapKit的使用

// //  ViewController.m //  Demo_1 MKMapView // //  Created by tareba on 15/12/16. //  Copyright © 2015年 tanada. All rights reserved. // #import "ViewController.h" #import <MapKit/MapKit.h> #import "TRAnnotation.h" @interface Vie

苹果原生推送

很久以前写demo,现在回忆下~~~可能有点错误 GIthub:https://github.com/BigShow1949/YFPushTest 步骤: 1)添加APP ID. 苹果开发者中心: Identifiers--->App IDs 添加一个ID,比如我的Name:YFPushTest, 这里的ID一定是项目的Bundle Identifier , 比如:com.YFPushTest.BigShow.YFPushTest; 2)生成苹果推送证书(生产&测试) 取名比如: com.Y