如何在MKMapview中使用zoomRect缩放贴图区域并禁用当前位置单击事件?
问题描述:
我做了一个缩放放置在地图上的所有引脚的演示。如何在MKMapview中使用zoomRect缩放贴图区域并禁用当前位置单击事件?
1)我已经使用zoomRect进行缩放能见度所有引脚,但它没有显示正确。
2)我的第二个问题,我有我的当前位置以及所有的引脚,当我在针点击它给了我所有的细节关于该引脚, 但是当我点击当前的位置针它已经崩溃给我解决方案,我不想点击我当前的位置pin 如何禁用和删除点击事件。
我用: -
if (annotation == mapView.userLocation)
{
return nil;
}
,但它只会隐藏针不会禁用引脚。
我的代码是
MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in self.mapViewMap.annotations)
{
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x , annotationPoint.y ,0.1, 0.1);
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
[self.mapViewMap setVisibleMapRect:zoomRect animated:YES];
图像输出
预期成果是像
谢谢你在前进,我希望你能给我回答两个。谢谢很多。
答
为1),你可以在showAnnotations:animated:
功能使用内置see documentation 否则,你可以试试这个:
func zoomToAllAnnotations() {
// Exclude if you don't want to include the user's location
let annotationPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate)
var zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1)
for annotation in mapView.annotations {
let annotationPoint = MKMapPointForCoordinate(annotation.coordinate)
let pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1)
zoomRect = MKMapRectUnion(zoomRect, pointRect)
}
mapView.setVisibleMapRect(zoomRect, animated: true)
}
关于2),你可以尝试pinView.canShowCallout = false
您currentLocation注释。这里是link to documentation。