在我的iphone应用程序中,我使用MKMapview显示位置,这是第一次显示当前位置带有蓝点。但是如果在地图中拖动并单击当前位置按钮它不会显示蓝点(但我是能够返回当前位置区域)
-(IBAction)currntLctnClick:(id)sender{
[map setCenterCoordinate:map.userLocation.location.coordinate animated:YES];
}
答案 0 :(得分:2)
用蓝点显示当前位置
- (void)viewDidLoad
{
yourMapView.showsUserLocation=YES;
}
点击按钮
导航到当前位置-(IBAction)currntLctnClick:(id)sender
{
MKCoordinateRegion location = MKCoordinateRegionMakeWithDistance(yourMapView.userLocation.coordinate, 10000.0, 10000.0);
[yourMapView setRegion:location animated:YES];
}
修改强>
或者,如果仍然看不到您的蓝点,则只需从xib中删除MapView
并再次拖放即可。
答案 1 :(得分:2)
您是否实施了viewForAnnotation
功能?你在检查你没有为MKUserLocation绘制(或没有绘制)不同类型的引脚吗?
答案 2 :(得分:2)
考虑到您说您可以在首次加载时看到用户位置,可以假设您已将setShowsUserLocation:
设置为YES。
您是否在视图控制器中实现了- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
?
如果是这样,请务必避免为内置用户位置标记提供注释视图。
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
//check annotation is not user location
if([annotation isEqual:[mapView userLocation]])
{
//bail
return nil;
}
static NSString *annotationViewReuseIdentifer = @"map_view_annotation";
//dequeue annotation view
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationViewReuseIdentifer];
if(!annotationView)
{
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationViewReuseIdentifer];
}
//set annotation view properties
[annotationView setAnnotation:annotation];
return annotationView;
}
答案 3 :(得分:1)
对于所有通过搜索GoogleMaps解决方案来到这里的人 - 这是您需要设置为true的属性。
Swift 3.0
self.mapView.isMyLocationEnabled=true
答案 4 :(得分:0)
[map setShowsUserLocation:YES];
答案 5 :(得分:0)
只需在viewForAnnotation方法中进行迭代时检查批注是否为 MKUserLocation 即可,如果为true,则返回nil。
之所以这样工作,是因为MKUserLocation也是mapView.annotations数组的一部分,您只需要将其传递而无需进行任何修改。
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard !(annotation is MKUserLocation) else { return nil }
// your viewForAnnotation code...
}
答案 6 :(得分:0)
要添加的话,如果您使用的是Interface Builder,请选择“地图视图”,然后在“属性”部分中,确保选中User Location
: