MKMapView 不读取给定坐标

Posted

技术标签:

【中文标题】MKMapView 不读取给定坐标【英文标题】:MKMapView does not read the given coordinates 【发布时间】:2014-01-12 09:07:14 【问题描述】:

ViewController.h

#import <UIKit/UIKit.h>
#import "MapKit/MapKit.h"
@interface ViewController : UIViewController <MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end

ViewController.m

#import "ViewController.h"
@interface ViewController ()
@end

@implementation ViewController


- (void)viewDidLoad

[super viewDidLoad];

//Setting Region
//MKCoordinateRegion *myRegion;

//Center
CLLocationCoordinate2D center;
center.longitude = 55.316667;
center.latitude = 25.266667;

//SPAN
MKCoordinateSpan span;
span.latitudeDelta = 0.30f;
span.longitudeDelta = 0.30f;



- (void)didReceiveMemoryWarning

[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.


@end

如您所见,我的代码似乎没问题,通常它应该显示以纬度和经度值给出的位置。但相反,它显示了这一点:

我在 Xcode 5 和 ios 6 中工作。

对这个问题有什么想法吗?

【问题讨论】:

【参考方案1】:

显示的代码中没有任何地方“将坐标提供给地图视图”,那么它为什么要这样做呢?

所有的代码都是:

    viewDidLoad 方法中声明名为centerspan 的局部变量。 设置这些局部变量的值(地图视图对此一无所知)。 viewDidLoad 方法结束(对局部变量的值什么都不做)。

在设置centerspan 之后添加此行实际上坐标提供给地图视图,以便它显示这些坐标:

mapView.region = MKCoordinateRegionMake(center, span);

(当然,假设mapView IBOutlet 连接到xib 中的MKMapView。)

现在,这将使地图视图以您指定的坐标居中,仅此而已。

如果您期待任何其他效果(例如出现在坐标处的图钉),您需要使用这些坐标创建注释并告诉地图视图添加它。

【讨论】:

我认为这些是坐标:center.longitude = 55.316667; center.latitude = 25.266667; 正如我所说,center 只是您声明和设置的局部变量。地图视图对此一无所知,直到您通过设置地图视图的region 之类的操作将其实际提供给地图视图。

以上是关于MKMapView 不读取给定坐标的主要内容,如果未能解决你的问题,请参考以下文章

MKMapView 和 setRegion:animated: 不更新地图视觉效果

从 UIViewController 中删除我的自定义 MKMapView

MKMapView中心坐标不准确

iOS MKMapView setCenterCoordinate 不遵守确切的坐标

从 SQLite 读取坐标并创建一个 MKPolygon

MKMapView 获取中心坐标在南半球添加抖动