1

我有一个多边形数组,该数组是从每个多边形坐标的数据文件中创建的。

因此,当我在地图上绘制它们时,我使用:

[mapView addOverlays:polygonArray];

在我看来ForOverlay:

if ([overlay isKindOfClass:[MKPolygon class]]) {
    MKPolygonView *polyView = [[MKPolygonView alloc] initWithPolygon:overlay];
    polyView.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.1];
    polyView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.1];
    polyView.lineWidth = 1;
    return polyView;
  }
else {
  return nil;
}

问题在于,关于我的“colorWithAlphaComponent”,代码似乎重用并为每个多边形重新创建了 polyView。因此第一个是 alpha 0.1 但第二个是 2x 等等。所以最后几个多边形不再“透视”了。

这是它的外观:

在此处输入图像描述

4

1 回答 1

1

根据问题描述和图片,听起来您多次添加相同的多边形,因此它与自身重叠。

当叠加层重叠时,地图视图会将它们的颜色混合在一起,从而产生更暗的外观。


如果polygonArray本身包含唯一的多边形但addOverlays被多次调用removeOverlaysaddOverlays如果地图上的现有多边形已经包含在polygonArray.


另一种可能性是它polygonArray本身包含重复的多边形。
即使addOverlays只调用一次,地图也会添加同一个多边形的多个实例,从而导致这些叠加层相互重叠,从而使它们的颜色比预期的要暗。

要解决此问题,您应该消除polygonArray.

于 2013-07-04T12:29:28.423 回答