Несколько наложений полигонов из массива
У меня есть массив с полигонами, созданными из файла данных с координатами на полигон.
Поэтому, когда я рисую их на своей карте, я использую:
[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 для каждого Polygon. Поэтому первый из них имеет альфа 0,1, а второй - 2х и т. Д. Таким образом, последние несколько полигонов больше не являются "сквозными".
Вот как это выглядит:
1 ответ
Судя по описанию проблемы и изображению, кажется, что вы добавляете один и тот же полигон несколько раз, поэтому он перекрывается с самим собой.
Когда наложения перекрываются, представление карты смешивает их цвета, что приводит к более темному виду.
Если polygonArray
содержит уникальные многоугольники, но addOverlays
вызывается несколько раз, вы должны позвонить removeOverlays
до addOverlays
если существующие многоугольники на карте уже включены в polygonArray
,
Другая возможность заключается в том, что polygonArray
Сам содержит дубликаты полигонов.
Даже если addOverlays
вызывается только один раз, карта добавляет несколько экземпляров одного и того же многоугольника, в результате чего эти наложения перекрываются, давая им более темный цвет, чем ожидалось.
Чтобы это исправить, вы должны устранить дублирование в polygonArray
,