最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)之離線地圖核心代碼

 更新時間:2016年04月19日 09:52:20   作者:Livia.Chen  
本文給大家分享ios開發(fā)之離線地圖核心代碼,代碼簡單易懂,非常實用,有需要的朋友參考下

一,效果圖。


二,工程圖。


三,代碼。

ViewController.h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import "MapLocation.h"
@interface ViewController : UIViewController
<MKMapViewDelegate>
{
  MKMapView *_mapView;
  NSString *addressString;
}
@end 

ViewController.m

 #import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  //調(diào)用系統(tǒng)自帶的高德地圖
  //顯示當(dāng)前某地的離線地圖
  _mapView = [[MKMapView alloc] init];
  _mapView.frame = CGRectMake(0, 40, 320,400);
  _mapView.delegate = self;
  _mapView.mapType = MKMapTypeStandard;
  [self.view addSubview:_mapView];
  addressString=@"光啟城";
  NSLog(@"---addressString---%@",addressString);
  [self geocodeQuery];
}
- (void)geocodeQuery{
  if (addressString == nil || [addressString length] == 0) {
    return;
  }
  CLGeocoder *geocoder = [[CLGeocoder alloc] init];
  [geocoder geocodeAddressString:addressString completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"查詢記錄數(shù):%ld",[placemarks count]);
    if ([placemarks count] > 0) {
      [_mapView removeAnnotations:_mapView.annotations];
    }
    for (int i = 0; i < [placemarks count]; i++) {
      CLPlacemark* placemark = placemarks[i];
      //調(diào)整地圖位置和縮放比例
      MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(placemark.location.coordinate, 10000, 10000);
      [_mapView setRegion:viewRegion animated:YES];
      MapLocation *annotation = [[MapLocation alloc] init];
      annotation.streetAddress = placemark.thoroughfare;
      annotation.city = placemark.locality;
      annotation.state = placemark.administrativeArea;
      annotation.zip = placemark.postalCode;
      annotation.coordinate = placemark.location.coordinate;
      [_mapView addAnnotation:annotation];
    }
  }];
}
#pragma mark Map View Delegate Methods
- (MKAnnotationView *) mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>) annotation {
  MKPinAnnotationView *annotationView
  = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:@"PIN_ANNOTATION"];
  if(annotationView == nil) {
    annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation
                             reuseIdentifier:@"PIN_ANNOTATION"];
  }
  annotationView.pinColor = MKPinAnnotationColorPurple;
  annotationView.animatesDrop = YES;
  annotationView.canShowCallout = YES;
  return annotationView;
}
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
  _mapView.centerCoordinate = userLocation.location.coordinate;
}
- (void)mapViewDidFailLoadingMap:(MKMapView *)theMapView withError:(NSError *)error {
  NSLog(@"error : %@",[error description]);
}
@end 

MapLocation.h

#import <MapKit/MapKit.h>
@interface MapLocation : NSObject<MKAnnotation>
//街道信息屬性
@property (nonatomic, copy) NSString *streetAddress;
//城市信息屬性
@property (nonatomic, copy) NSString *city;
//州、省、市信息
@property (nonatomic, copy) NSString *state;
//郵編
@property (nonatomic, copy) NSString *zip;
//地理坐標(biāo)
@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;
@end 

 MapLocation.m

//地圖調(diào)用函數(shù)
#import "MapLocation.h"
@implementation MapLocation
- (NSString *)title {
  return @"您的位置!";
}
- (NSString *)subtitle {
  NSMutableString *ret = [NSMutableString new];
  if (_state)
    [ret appendString:_state];
  if (_city)
    [ret appendString:_city];
  if (_city && _state)
    [ret appendString:@", "];
  if (_streetAddress && (_city || _state || _zip))
    [ret appendString:@" • "];
  if (_streetAddress)
    [ret appendString:_streetAddress];
  if (_zip)
    [ret appendFormat:@", %@", _zip];
  return ret;
}
@end

相關(guān)文章

  • 加載帶有手勢識別器的XIB文件需注意哪些問題

    加載帶有手勢識別器的XIB文件需注意哪些問題

    手勢識別在iOS上非常重要,手勢操作移動設(shè)備的重要特征,極大的增加了移動設(shè)備使用便捷性。通過本教程給大家介紹加載帶有手勢識別器的XIB文件需注意哪些問題,需要的朋友可以參考下
    2015-08-08
  • 一個方法搞定iOS下拉放大及上推縮小

    一個方法搞定iOS下拉放大及上推縮小

    在很多的APP中,我們可以看到一個列表頂部的圖片會隨著下拉會放大,隨著上推縮小。這樣的效果沒能給定一個固有名詞,現(xiàn)在本文介紹使用代碼實現(xiàn)這樣的效果,代碼量很少,容易理解。當(dāng)然實現(xiàn)效果是很好的。
    2016-07-07
  • 如何在自己的電腦上配置APNS推送環(huán)境

    如何在自己的電腦上配置APNS推送環(huán)境

    這篇文章主要介紹了如何在自己的電腦上配置APNS推送環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • iOS開發(fā)之tableView點擊下拉擴(kuò)展與內(nèi)嵌collectionView上傳圖片效果

    iOS開發(fā)之tableView點擊下拉擴(kuò)展與內(nèi)嵌collectionView上傳圖片效果

    這篇文章主要介紹了iOS開發(fā)之tableView點擊下拉擴(kuò)展與內(nèi)嵌collectionView上傳圖片效果的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • IOS App圖標(biāo)和啟動畫面尺寸詳細(xì)介紹

    IOS App圖標(biāo)和啟動畫面尺寸詳細(xì)介紹

    這篇文章主要介紹了IOS App圖標(biāo)和啟動畫面尺寸詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • iOS開發(fā)教程之單例使用問題詳析

    iOS開發(fā)教程之單例使用問題詳析

    這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之單例使用問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 為按鈕位置配置不同的IOS背景

    為按鈕位置配置不同的IOS背景

    這篇文章主要介紹了為按鈕位置配置不同的IOS背景,面對多個按鈕如何配置不同的IOS背景,需要的朋友可以參考下
    2015-07-07
  • iOS中修改UISearchBar圓角的小技巧分享

    iOS中修改UISearchBar圓角的小技巧分享

    UISearchBar也是iOS開發(fā)常用控件之一,點進(jìn)去看看里面的屬性barStyle、text、placeholder等等。下面這篇文章主要給大家分享了iOS中修改UISearchBar圓角的小技巧,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-05-05
  • Objective-C中NSNumber與NSDictionary的用法簡介

    Objective-C中NSNumber與NSDictionary的用法簡介

    這篇文章主要介紹了Objective-C中NSNumber與NSDictionary的用法簡介,雖然Objective-C即將不再是iOS的主流開發(fā)語言...well,需要的朋友可以參考下
    2015-09-09
  • iOS工程中怎么判斷下載的流是PDF文件

    iOS工程中怎么判斷下載的流是PDF文件

    iOS工程中怎么判斷下載的流是PDF文件?下面小編就為大家分享一篇iOS工程中判斷下載的流是PDF文件的方法。希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論

谢通门县| 大连市| 新乡市| 临沂市| 邵阳市| 理塘县| 衡山县| 盘山县| 衡水市| 台北县| 长乐市| 西和县| 庆城县| 华阴市| 德兴市| 浮梁县| 法库县| 台中县| 大埔县| 乐亭县| 日土县| 金乡县| 满洲里市| 巩留县| 鹤壁市| 民和| 日照市| 灵台县| 桃源县| 河西区| 浮梁县| 佛山市| 班玛县| 瑞安市| 平果县| 兰州市| 砀山县| 襄城县| 北流市| 呈贡县| 石嘴山市|