我正在从存储在我的文档目录中的kml文件在 map 上绘制覆盖图。我正在一次查看大约30至40个kml文件,而线色本身存储在kml中。问题是其中一些没有显示。

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
    return [kmlParser viewForOverlay:overlay];
}

上面的代码来自参考KMLViewer,可以从here下载

当我编写下面的代码时,它工作得很好,但是所有生成的kml文件都用黑色绘制
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
        MKOverlayPathView *overlayPathView;

        if ([overlay isKindOfClass:[MKPolygon class]])
        {
            overlayPathView = [[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay];

            overlayPathView.fillColor = [[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0] colorWithAlphaComponent:0.2];
            overlayPathView.strokeColor = [[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0] colorWithAlphaComponent:0.7];
            overlayPathView.lineWidth = 3;

            return overlayPathView;
        }
}

任何帮助将不胜感激!

谢谢。

最佳答案

boundingMapRect可能是罪魁祸首,请检查 map 的缩放级别及其boundingmaprect属性

09-25 19:14