2013-05-21 4 views
4

Я искал через Интернет, но я не мог найти ответ на этот вопрос. Можно ли провести отверстие в МК-Полигоне? Что-то вроде этого:MKPolygon с отверстиями

enter image description here

Я помню, что видел что-то вроде этого, но я не уверен, если это было связано с прошивкой. Это можно сделать и (если это так), как я должен начать?

Спасибо

ответ

6

Чтобы сделать это правильно, вы должны действительно посмотреть на interiorPolygons частей MKPolygon.

+0

Отлично. Я этого не заметил. Гораздо более элегантно. – Rob

1

Как @incanus указывает, вы можете определить interiorPolygons массив. Например:

NSUInteger interiorCount = 5; 
CLLocationCoordinate2D interiorCoordinates[interiorCount]; 

interiorCoordinates[0] = CLLocationCoordinate2DMake(...); 
interiorCoordinates[1] = CLLocationCoordinate2DMake(...); 
interiorCoordinates[2] = CLLocationCoordinate2DMake(...); 
interiorCoordinates[3] = CLLocationCoordinate2DMake(...); 
interiorCoordinates[4] = CLLocationCoordinate2DMake(...); 

MKPolygon* interiorPolygon = [MKPolygon polygonWithCoordinates:interiorCoordinates 
                 count:interiorCount]; 
interiorPolygon.title = @"interior polygon"; 

NSUInteger count = 5; 
CLLocationCoordinate2D coordinates[count]; 

coordinates[0] = CLLocationCoordinate2DMake(...); 
coordinates[1] = CLLocationCoordinate2DMake(...); 
coordinates[2] = CLLocationCoordinate2DMake(...); 
coordinates[3] = CLLocationCoordinate2DMake(...); 
coordinates[4] = CLLocationCoordinate2DMake(...); 

MKPolygon* polygon = [MKPolygon polygonWithCoordinates:coordinates 
               count:count 
             interiorPolygons:@[interiorPolygon]]; 

polygon.title = @"exterior polygon"; 
[self.mapView addOverlay:polygon]; 

, что урожайность:

overlay with interior polygon

Заслуга @incanus!

+0

В любом случае, чтобы добавить закругленное целое? – Andrespch

+0

Несомненно, вы можете заменить этот 'internalPolygon' на многогранный равносторонний многоугольник. Если есть достаточно сторон (например, 60? 90? 120? И т. Д.), Я подозреваю, что он будет визуально неотличим от круга. Но, нет, я не вижу, чтобы использовать 'MKCircle' вместо' interiorPolygons'. – Rob

+0

Можете ли вы сделать внутренние полигоны иметь цвет? в основном, обратный тому, что вы сделали? – pudm

Смежные вопросы