Чтобы нарисовать многоугольник на карте Google с каркасом MapKit - PullRequest
5 голосов
/ 26 августа 2009

Я хотел отобразить карту Google в виде карты, на которой я хочу нарисовать многоугольник / круг.

Любой совет?

Ответы [ 2 ]

6 голосов
/ 15 мая 2012

То, как я читаю ваш вопрос, заключается в том, что вы хотите программно нарисовать многоугольник на карте. Для этого обратитесь к Apple документациям на MapKit.

Вам не нужно добавлять прозрачные виды на карту MapKit (MKMapView). Вы создаете объект overlay , в данном случае MKPolygon. (в следующем примере переменная map будет экземпляром MKMapView, принадлежащим контроллеру представления, в который вы поместили этот код):

CLLocationCoordinate2D  points[4];

points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);

MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";

[map addOverlay:poly];

Затем, если вы хотите настроить внешний вид (цвета, обводку и т. Д.) Наложения, вы реализуете протокол MKMapViewDelegate в имеющемся у вас контроллере представления, который владеет объектом MKMapView, и обеспечивает реализацию mapView:viewForOverlay

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
    if ([overlay isKindOfClass:[MKPolygon class]])
    {
        MKPolygonView* aView = [[[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay] autorelease];

        aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
        aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
        aView.lineWidth = 3;

        return aView;
    }

    return nil;
}

Конечно, всегда не забывайте назначать делегат экземпляра карты вашему контроллеру представления (MKMapViewDelegate), либо в построителе интерфейса, либо в коде (например, viewDidLoad).

1 голос
/ 14 октября 2009

Я использовал идеи из этого поста в блоге для достижения этой цели. Это в основном включает в себя добавление прозрачного вида на карту. Затем карта позволяет преобразовывать местоположения в точки на виде. Дайте мне знать, если сайт вам не поможет, и я попытаюсь найти пример из моего кода.

http://spitzkoff.com/craig/?p=65

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...