2013-03-29 38 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. 
} 
相關問題