二、写入控件
三、实现代码
#import "ViewController.h"
#import <MapKit/MapKit.h>//地图
#import <CoreLocation/CoreLocation.h>//定位
@interface ViewController ()<MKMapViewDelegate>
//纬度字段
@property (weak,nonatomic)IBOutletUITextField *latitudeField;
//经度字段
@property (weak,nonatomic)IBOutletUITextField *longitudeField;
//地图 VIew
@property (weak,nonatomic)IBOutletMKMapView *mapView;
//原位置
- (IBAction)goClicked:(UIButton *)sender;
@end
/**
纬度为南纬90-0-北纬90
经度为西经180-本出子午线(0度)-东经180
市界的地理坐标为:北纬39”26’至41”03’,东经115”25’至 117”30’。
北京天安门广场的经纬度(东经:116°23′17〃,北纬:39°54′27〃
北京市区坐标为:北纬39.9”,东经116. 3”。
各郊区、县的地理坐标为:
房山区,北纬 39. 6”,东经115.9”;
门头沟区,北纬39.6o”,东经115.9;
大兴县,北纬39.7”,东经116.3”;
通县,北纬39.8”,东经116.6”,
顺义县,北纬40.l”,东经116.6”;
平谷县,北纬40 1”,东经117.1”
昌平县,北纬40.2”,东经116.2”;
怀柔县,北纬40.3”,东经116.6”;
密云县,北纬40.3”,东经116 8”;
延庆县,北纬40.4”,东经115.9”。
纬度:37.7858
经度 -122.406
*/
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/**类型
MKMapTypeStandard = 0,可映射类型标准
MKMapTypeSatellite, 可映射类型卫星
MKMapTypeHybrid, 可映射类型混合(普通地图覆盖于卫星云图之上)
MKMapTypeSatelliteFlyover MK地图类型的国家立交桥(3D立体卫星)
MKMapTypeHybridFlyover MK地图型混合飞行(3D立体混合)
*/
// 设置地图的显示风格,此处设置使用标准地图
self.mapView.mapType = MKMapTypeStandard;
// 设置地图可缩放
self.mapView.zoomEnabled =YES;
// 设置地图可滚动
self.mapView.scrollEnabled =YES;
// 设置地图可旋转
self.mapView.rotateEnabled =YES;
// 设置显示用户当前位置
self.mapView.showsUserLocation =YES;
// 为MKMapView设置delegate
self.mapView.delegate =self;
// 调用自己实现的方法设置地图的显示位置和显示区域
[self locateToLatitude:23.126272 longitude:113.395568];
NSLog(@"用户当前是否位于地图中:%d" ,self.mapView.userLocationVisible);
}
- (IBAction)goClicked:(UIButton *)sender
{
// 关闭两个文本框的虚拟键盘
[self.latitudeField resignFirstResponder];
[self.longitudeField resignFirstResponder];
NSString* latitudeStr = self.latitudeField.text;
NSString* longtitudeStr = self.longitudeField.text;
// 如果用户输入的经度、纬度不为空
if (latitudeStr !=nil && latitudeStr.length >0
&& longtitudeStr != nil && longtitudeStr.length >0)
{
// 调用自己实现的方法设置地图的显示位置和显示区域
[self locateToLatitude:latitudeStr.floatValue
longitude:longtitudeStr.floatValue];
}
}
#pragma mark - 显示位置和显示区域 --封装
- (void)locateToLatitude:(CGFloat)latitude longitude:(CGFloat)longitude
{
// 设置地图中心的经、纬度
CLLocationCoordinate2D center = {latitude , longitude};
// 也可以使用如下方式设置经、纬度
//center.latitude = latitude;
//center.longitude = longitude;
// 设置地图显示的范围,
MKCoordinateSpan span;
// 地图显示范围越小,细节越清楚
span.latitudeDelta = 0.01;
span.longitudeDelta = 0.01;
// 创建MKCoordinateRegion对象,该对象代表了地图的显示中心和显示范围。
MKCoordinateRegion region = {center,span};
// 设置当前地图的显示中心和显示范围
[self.mapView setRegion:region animated:YES];
}