gpt4 book ai didi

ipad - iOS MapKit : Selected MKAnnotation coordinates

转载 作者:行者123 更新时间:2023-12-01 19:28:53 26 4
gpt4 key购买 nike

使用以下教程中的代码,http://www.zenbrains.com/blog/en/2010/05/detectar-cuando-se-selecciona-una-anotacion-mkannotation-en-mapa-mkmapview/ ,我能够为每个 MKAnnotation 添加一个观察者并接收选择/取消选择状态的通知。

我正在尝试在选择注释之上添加一个 UIView 以显示有关该位置的相关信息。此信息不能在图钉标注允许的 2 行(标题/副标题)中传达。

- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {

Annotation *a = (Annotation *)object;
// Alternatively attempted using:
//Annotation *a = (Annotation *)[mapView.selectedAnnotations objectAtIndex:0];


NSString *action = (NSString *)context;
if ([action isEqualToString:ANNOTATION_SELECTED_DESELECTED]) {
BOOL annotationSelected = [[change valueForKey:@"new"] boolValue];
if (annotationSelected) {
// Actions when annotation selected
CGPoint origin = a.frame.origin;
NSLog(@"origin (%f, %f) ", origin.x, origin.y);

// Test
UIView *v = [[UIView alloc] init];
[v setBackgroundColor:[UIColor orangeColor]];
[v setFrame:CGRectMake(origin.x, origin.y , 300, 300)];
[self.view addSubview:v];
[v release];
}else {
// Accions when annotation deselected
}
}
}

结果使用 Annotation *a = (Annotation *)object
origin (154373.000000, 197135.000000) 
origin (154394.000000, 197152.000000)
origin (154445.000000, 197011.000000)

结果使用 Annotation *a = (Annotation *)[mapView.selectedAnnotations objectAtIndex:0];
origin (0.000000, 0.000000) 
origin (0.000000, 0.000000)
origin (0.000000, 0.000000)

数字很​​大。它们与 View (1024 x 768) 无关。我相信它们是相对于整个 map 的。我如何能够检测到相对于整个 View 的确切坐标,以便我可以适本地定位我的 View ?

注:

刚刚发现这两种方法可能可以以更简单的实现方式完成与上面代码相​​同的事情。

选择注释 View
– mapView:didSelectAnnotationView:
– mapView:didDeselectAnnotationView:

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html

最佳答案

而不是使用 .frame.origin ,尝试获取 MKAnnotationcoordinate属性(property)。使用这个coordinate , 你可以使用 MKMapViewconvertCoordinate:toPointToView:获取注释的来源。

希望这可以帮助!

关于ipad - iOS MapKit : Selected MKAnnotation coordinates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com