【代码笔记】iOS-离线地图
来源:互联网 发布:单片机com端口有感叹号 编辑:程序博客网 时间:2024/06/03 20:19
一,效果图。
二,工程图。
三,代码。
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. //调用系统自带的高德地图 //显示当前某地的离线地图 _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(@"查询记录数:%ld",[placemarks count]); if ([placemarks count] > 0) { [_mapView removeAnnotations:_mapView.annotations]; } for (int i = 0; i < [placemarks count]; i++) { CLPlacemark* placemark = placemarks[i]; //调整地图位置和缩放比例 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;//地理坐标@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;@end
MapLocation.m
//地图调用函数#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
0 0
- 【代码笔记】iOS-离线地图
- 离线地图和导航对于Android和iOS设备
- ArcGIS Runtime SDK for iOS开发之创建离线地图
- 百度地图ios使用笔记
- ios自带地图笔记
- 百度地图 -- 离线地图开发
- iPhone4离线地图制作
- 手机离线地图服务
- 离线地图的实现
- android离线地图源码
- 离线地图制作
- 离线地图制作工具
- 百度离线地图加载
- arcgis离线地图加载
- 百度离线地图开发
- ArcGIS离线地图参考
- 百度地图离线管理
- 离线地图制作方法
- Effective STL 条款14
- MAPGIS平台下的任意矩形图框生成方法
- response.sendRedirect // request.getRequestDispatcher("/Result2.jsp").forward(request, response);
- iOS开发中本地数据存储的 ios登录成功后将用户的数据存储到本地 下次打开应用时不用重复登录了
- json&&xml(1~2)
- 【代码笔记】iOS-离线地图
- 软件设计师(3)--常见基础错题
- 专题二总结
- 那些年我们踩过的php坑(持续更新)
- Win7 with Ubuntu15 share folder
- 关于知识、技能、能力的理解?(个人理解)
- Z-stack协议栈中路由与普通节点的区别
- 项目总结
- 负载压力测试基础概念