【问题标题】:How to center map to a specific coordinate?如何将地图居中到特定坐标?
【发布时间】:2014-12-19 15:14:04
【问题描述】:

我只想将地图视图居中到一个位置,但它总是崩溃,这是代码:

@property (weak, nonatomic) IBOutlet MKMapView *map;

...

CGFloat x = 94.71;
CGFloat y = 6.94;
CLLocationCoordinate2D pointLocation = CLLocationCoordinate2DMake(x, y);
[[self map] setCenterCoordinate:pointLocation animated:YES];

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无效坐标 +94.70999908,+6.94000006”

这段代码曾经在另一个应用程序中工作...不知道为什么它不起作用...是因为数据类型(CGFloat)吗?

【问题讨论】:

  • CLLocationCoordinate2DMake(0, 0) 不会崩溃...
  • CLLocationCoordinate2DMake 参数为纬度、经度。纬度 94.71 超出范围(必须从 -90 到 +90)。你可能想做CLLocationCoordinate2DMake(y, x)

标签: ios objective-c dictionary mapkit coordinates


【解决方案1】:

如果坐标至少满足以下条件之一,则认为该坐标无效:

它的纬度大于90度或小于-90度。

它的经度大于180度或小于-180度。

Core Location Functions Reference

您可以使用BOOL CLLocationCoordinate2DIsValid ( CLLocationCoordinate2D coord );检查坐标是否有效

【讨论】:

  • 谢谢,我不知道坐标,我的提要一直都有经度和纬度。
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多