需求描述:
因爲註記在地圖上標註會出現衝突的情況,所以需要將衝突的註記移植沒有衝突的位置,當移出的位置超過一定距離後,就需要添加引線,來明確標註位置關係。目標效果,如圖:
如何解決問題:
找到關鍵詞,引線註記,英文爲Callout,於是,將Callout放到AEdeveloperHelper中,進行搜索,知道這是個什麼東西,通過看的過程中,逐步瞭解其的具體分類、找到自己需要的功能。
Icallout包括了兩個公共屬性(AnchorPoint、LeaderTolerance),被IBalloonCallout、ILineCallout 、ISimpleLineCallout 所繼承,AnchorPoint是錨點,就關聯的點;LeaderTolerance是引線的最小長度值。
實現Icallout的類有:BalloonCallout ,LineCallout、SimpleLineCallout。
BalloonCallOut是氣泡形的引線標註,LineCallOut是矩形的引線標註,這兩個標註的區別於SimpleLineCallOut在於有AnchorBar和BackGround。
需要的是:SimpleLineCallOut,該類主要有四個屬性:
lineCallout.LineSymbol = ldrLine;//引線樣式
lineCallout.AnchorPoint =pFromPoint;//錨點
lineCallout.LineGeometry = pLine;//引線
lineCallout.LeaderTolerance =Tolerance;//引線最小值
設置完成後即可得到上面的目標效果。
心得體會
在未知區域尋找目標對象的方法是:一問過來人;二從已有的信息開始入手,找到最概括的層,再瞭解概括層的所有對象,最後從這些小的對象中找出需要的對象。