0

私は Apple の KMLViewer ソフトウェアをテストしていますが、x、y 座標が属する国を見つけるために使用できるかどうか疑問に思っていました。私の KML ファイルには、すべての国のすべてのデータが含まれています。(ポリゴン、オーバーレイなど)。

4

1 に答える 1

0

すでにMKPolygonオーバーレイを作成していて、でビューをMKMapView作成していて、タップジェスチャが特定のジェスチャにあるかどうかを確認しようとしている場合は、次のことができると思います。MKPolygonViewmapView:viewForOverlay:MKPolygonView

- (void)handleTap:(UITapGestureRecognizer *)gesture
{
    BOOL success = NO;

    CGPoint location = [gesture locationInView:self.mapView];
    CLLocationCoordinate2D coordinate = [self.mapView convertPoint:location toCoordinateFromView:self.mapView];
    MKMapPoint mapPoint = MKMapPointForCoordinate(coordinate);

    for (id<MKOverlay> overlay in self.mapView.overlays)
    {
        MKOverlayView *overlayView = [self.mapView viewForOverlay:overlay];
        if ([overlayView isKindOfClass:[MKPolygonView class]])
        {
            MKPolygon *polygon = (MKPolygon *)overlay;
            MKPolygonView *polygonView = (MKPolygonView *)overlayView;
            CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];
            if (CGPathContainsPoint([polygonView path], NULL, polygonViewPoint, NO))
            {
                NSLog(@"Overlay '%@' contains point %@", polygon.title, NSStringFromCGPoint(location));
                success = YES;
                break;
            }
        }
    }

    if (!success)
        NSLog(@"No overlays contained point %@", NSStringFromCGPoint(location));
}
于 2013-02-12T10:16:41.677 に答える