【发布时间】:2011-07-18 14:28:00
【问题描述】:
我现在面临 MapKit 问题太久了,我真的需要你的帮助来找出问题可能来自哪里...... 我在 mapkit 视图上绘制国家边界。为此,我添加了一个自定义多边形对象作为我的地图的叠加层。添加后,“viewForOverlay”方法返回一个覆盖视图,该视图具有国家形状和特定颜色,具体颜色取决于该国家/地区的参数值。不幸的是,当我尝试绘制这些国家时,只显示位于地图左上角正方形中的多边形,其他的保持不可见......而那些仅部分属于这个正方形的多边形被简单地切割......
有人能暗示我的问题可能来自哪里,或者有什么可以解释这种非常奇怪的行为吗?
非常感谢!
本杰
【问题讨论】:
-
这适用于 iOS 吗?您使用的是 MKPolygon 还是自定义覆盖类?如果是自定义类,boundingMapRect是怎么设置的?
-
嗨安娜!是的,这是在 iOS 上。事实上,我只是扩展 MKPolygon 类来添加参数(我在上面谈到的值,这有助于我正确地为我的国家着色)。当调用标准的“viewForOverlay”方法时,我只需确定调用来自我的自定义类并返回一个 mkpolygonView,如上所述。你有什么想法吗?或者您需要更多信息?提前致谢。
-
发布一些扩展代码,包括如何设置 boundingMapRect 可能会有所帮助。还要在问题中添加 iOS 标签。
-
我添加了iOS标签,感谢您的建议;)!关于boundingMapRect,我根本没有设置它。这是一个用 "viewForOverlay" 调用的 MKPolygon 方法吗?在那种情况下,我使用标准的......它究竟做了什么?这是实际绘制我的国家/地区的方法的代码,以防问题来自那里......提前感谢您的帮助。
-
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id
)overlay { if ([overlay isKindOfClass:[CountryPolygon class]]){ CountryPolygon *proPolygon = overlay; MKPolygonView *aView = [[[MKPolygonView alloc]initWithPolygon:[proPolygon polygon]] autorelease]; if ([[proPolygon purchasePowerCategory] isEqualToString:@"nc"]) { aView.fillColor = [[UIColor grayColor] colorWithAlphaComponent:0.2]; } else { aView.fillColor = [[UIColor greenColor]colorWithAlphaComponent:0.2]; aView.strokeColor = [[UIColor grayColor] colorWithAlphaComponent:0.7];返回一个视图; }