2013-03-29 40 views
1

嗨,有可能在MKMapView上显示多个用户引脚在相同的位置Lat Long。看到此图像贝娄: -如何删除多个引脚的相同位置

enter image description here

在此以上图像I可以是有两个用户定位销,但由于相同的纬度长我可以看到只有一个销。所以我的问题是,可以在同一位置显示多个引脚。

如果我们不能将多个引脚放在同一位置,那么可以在包含相同位置用户信息的一个引脚上显示多个AccessoryView

请指导我如何完成这项任务。

+0

如果经度和纬度值相同,那么如果我们放大mapview,那么两个引脚都放在同一位置,那么我们可以看到这两个引脚。 – Balu

+0

虽然我点击引脚,然后同时获得HS等其他用户的第二个注释信息,当我再次点击然后得到HS AccessoryView我想同时显示。作为一个引脚或者如果不能删除两个用户的引脚,然后点击然后显示两者的AccessoryView。这个问题bcz的用户相同的位置 –

+0

不,我不能看到我可以做动物园,但它完全相同的拉长: –

回答

1

您将需要创建一个自定义的MKAnnotation类来执行此操作。

在同一位置放置多个插针没有任何意义。 相反,您可以在同一个针脚中显示多个AccessoryView 为此您需要创建UIView,列出您希望显示的所有针脚标题。

 [customAnnotationView.contentView addSubview:_contentView]; 
     customAnnotationView.contentWidth = _contentView.frame.size.width; 
     customAnnotationView.contentHeight = _contentView.frame.size.height; 

UIView的是你设计什么,所以你可以创建

像这样的东西可以帮助你。 enter image description here

+0

你可以请提供示例代码演示(如果你可以 –

+0

什么问题来了? – DivineDesert

+0

我不想做什么?可以弄清楚如何过滤相同的经纬度数据头脑是真正的网格请gimi简单的演示它的,如果你可以Plz –

0

首先筛选出唯一的位置记录。假设你有10条记录要显示在地图上,其中3条记录具有相同的位置,其他2条记录具有其他相同的位置,其余5条记录具有不同的位置。所以在地图上,地图上应该总共有1个(对于3个相同记录)+1(对于2个相同记录)+5 = 7个针脚。

现在,在方法

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

check current annotation has more than 1 records same as annotation location and based on that do 

if (ary.count > 1) 
    { 
     [annotationView setCanShowCallout:NO]; 
    } 
    else 
    { 
     [annotationView setCanShowCallout:YES]; 
    } 

然后在方法

- (无效)的MapView:(的MKMapView *)的MapView didSelectAnnotationView:(MKAnnotationView *)视图

检查视图可以显示的标注不。做如下

if (![view canShowCallout]) 
{ 
    // means annotation has more than 1 records on same location 

now get records of same location and display the way you want. 
} 
相关问题