私は Apple の KMLViewer ソフトウェアをテストしていますが、x、y 座標が属する国を見つけるために使用できるかどうか疑問に思っていました。私の KML ファイルには、すべての国のすべてのデータが含まれています。(ポリゴン、オーバーレイなど)。
質問する
337 次
1 に答える
0
すでにMKPolygon
オーバーレイを作成していて、でビューをMKMapView
作成していて、タップジェスチャが特定のジェスチャにあるかどうかを確認しようとしている場合は、次のことができると思います。MKPolygonView
mapView: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 に答える