KMLViewer问题

时间:2011-05-09 23:44:28

标签: ios mkmapview overlays

这是我的第一篇文章,我无可否认,但我确实需要一些帮助。

我下载了Apple的KMLViewer示例,以查看地图中的叠加层。在开始工作之后,作为我的“调查”的一部分,我然后添加了行

map = [[MKMapView alloc] initWithFrame:self.view.frame];

后面

[super viewDidLoad];

我知道我没有,但我有另一个需要以编程方式创建MKMapView的项目,我想在一个更简单的工作程序上验证该方法。

结果是KMLViewer编译并执行时没有错误,但不再显示kml文件创建的叠加层。如果该线被移除,则叠加层再次出现。

我错过了什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

KMLViewer中的map变量声明为IBOutlet,并连接到xib中的MKMapView。通过重新创建它,新实例不再连接到xib中的实例。

叠加可能没有显示,因为:

  • 未设置新实例上的委托(因此不会调用viewForOverlay等)
  • 新地图未添加为子视图

因此,如果在alloc + init之后添加以下两行,它应该再次开始工作:

map.delegate = self;
[self.view addSubview:map];

但是,xib中的MKMapView仍将位于新地图实例的下方。