2012-12-20 52 views
3

如何限制緯度和經度的唯一位置上的重複註釋。在MapView上限制重複註釋

當我在地圖上添加註釋時,我可以在具有相同緯度和長度的一個點上添加註釋,例如我在地圖上添加一個pin在lat = 37.785834和long = -122.406417,並將其命名爲Bob的房子下一次,當我再次在該位置添加註釋針,並且需要相同的緯度和長度時,我可以將其保存爲Steve House,但它不應該發生,我希望它顯示此位置已佔用的警報類型,請選擇一個不同的位置,所以沒有經長期應該有重複的條目。 這與變焦或任何東西無關。

現在我想要一個代碼來查詢和檢查數據庫是否用戶在相同的經度和緯度點擊註釋,即我從不想通過檢查數據庫來創建相同緯度/長度值的重複條目。 ....

示例代碼:

#pragma mark - 
- (void) addSite2 { 
    AddSiteInfoViewController *vc = [[[AddSiteInfoViewController alloc] initWithCoordinate:pinAnnotation.coordinate] autorelease]; 
    [self.delegate pushViewController:vc animated:YES]; 
} 
+1

嘿你怎麼能夠在相同的經緯度下多出一個引腳。 – Rajneesh071

+0

如果您不更改引腳位置,並繼續在同一位置添加註釋,則它會以相同的經度/長度添加名稱。 – nikesh

+0

可以請你給我提供樣品本或更多的解釋.. – Rajneesh071

回答

0

如果註釋在地圖已經示出,可以使用下面的代碼(而不必檢查數據庫中):

#pragma mark - 
- (void) addSite2 { 
    NSUInteger index = [self.mapView.annotations indexOfObjectPassingTest: 
         ^BOOL(MKAnnotation *anot1, NSUInteger index, BOOL *stop){ 
          return (CLCOORDINATES_EQUAL(anot1.coordinate, pinAnnotation.coordinate)); 
        }]; 
    if (index == NSNotFound) 
    { 
     AddSiteInfoViewController *vc = [[[AddSiteInfoViewController alloc] initWithCoordinate:pinAnnotation.coordinate] autorelease]; 
     [self.delegate pushViewController:vc animated:YES]; 
    } 
} 

(大多寫在我的頭頂,讓一個錯字或小錯誤可能存在。)

如果,事實上,沒有顯示註釋...使用由Rajneesh071的評論給出的解決方案: Extracting Unique Objects from a Data Array