iphone 蓝点和 pin 同时 -

发布于 2024-11-05 18:17:13 字数 880 浏览 5 评论 0原文

请帮忙,这个问题之前已经被问过很多次了,但是人们的建议对我的结果没有影响,我想要的只是在地图上显示图钉和蓝色圆圈(准确性),这是我的实现。 - 哦,我正在使用 iPhone 设备 - 我不在模拟器中

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{


NSLog(@"View for Annotation is called");

if (NSClassFromString(@"MKUserLocation")==[annotation class]) {
    return nil;
}

if (annotation == mapView.userLocation) {
    return nil;
}



MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];

annView.pinColor = MKPinAnnotationColorGreen;
UIButton * btn = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView = btn;
annView.animatesDrop=TRUE;

annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
pinDropped = TRUE;
return annView;

}

提前欢呼......该死的事情

please help, this question has been asked so many times before, but peoples suggestions have no effect on my outcome, all i want, is the pin and blue circle (Accuracy) to be shown on the map, here is my implementation. - oh, im using an iPhone device - im not in the simulator

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{


NSLog(@"View for Annotation is called");

if (NSClassFromString(@"MKUserLocation")==[annotation class]) {
    return nil;
}

if (annotation == mapView.userLocation) {
    return nil;
}



MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];

annView.pinColor = MKPinAnnotationColorGreen;
UIButton * btn = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView = btn;
annView.animatesDrop=TRUE;

annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
pinDropped = TRUE;
return annView;

}

cheers in advance.... bloody thing

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绳情 2024-11-12 18:17:13

如果您使用模拟器,那么您可能会在 CoreLocation 和 MapKit 计算当前位置的方式上遇到不为人知的差异。
 

在模拟器中,

CoreLocation始终使用位于美国加利福尼亚州库比蒂诺的 Apple 总部作为您的当前位置。这是蓝点始终出现在地图上的位置。

MapKit 将始终使用 Apple 的 IP 地址和 WiFi 热点信息数据库来近似您当前的实际位置。如果您告诉地图使用您当前的位置,这就是地图的中心位置。

因此,地图将以您当前的位置为中心,但蓝点将位于库比蒂诺。
 

在 iOS 设备上,

CoreLocation 将蓝点放在近似您当前实际位置的位置上。

MapKit 将地图以接近您当前实际位置的位置为中心。

因此,当使用实际的 iOS 设备时,您会在地图中心看到蓝点。

 
这些知识可以减轻很多压力。 :)

If you're using the Simulator then you're likely encountering the not-well-known difference in the way that CoreLocation and MapKit figure your current position.  

In the Simulator

CoreLocation will always use Apple's headquarters in Cupertino, California, USA as your current location. This is where the blue dot will always appear on the map.

MapKit will always use something approximating your actual current location using Apple's database of IP address and WiFi hotspot information. This is where the map will center if you tell it to use your current location.

As a result, the map will center on your current location but the blue dot will be over in Cupertino.  

On an iOS Device

CoreLocation puts the blue dot on something approximating your actual current location.

MapKit centers the map on something approximating your actual current location.

As a result you'll see the blue dot in the center of the map when using an actual iOS device.

This bit of knowledge can save a lot of stress. :)

枕花眠 2024-11-12 18:17:13

以防万一有人想知道,这也有效:

if ([annotation isKindOfClass:[MKUserLocation class]])
{
    return nil;
}

just in case someone was wondering, this also works:

if ([annotation isKindOfClass:[MKUserLocation class]])
{
    return nil;
}
昵称有卵用 2024-11-12 18:17:13

这在我的代码中有效

if(annotation == mapView.userLocation){
            return nil;
 }

尝试一下并让我们知道

This works in my code

if(annotation == mapView.userLocation){
            return nil;
 }

Try that and let us know

半暖夏伤 2024-11-12 18:17:13

确保已实现 [mapview addAnnotation:annotation];

谢谢安娜的提醒。

make sure implemented [mapview addAnnotation:annotation];

thanks Anna for the reminder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文