我有一個問題,這個問題一直讓我生氣 - 我拖網了網站,但找不到答案,這肯定是一個簡單的問題。如何從Android Map Overlay與MapView進行通信
我正在編寫一個Android應用程序,它使用地圖在特定位置顯示引腳。當用戶點擊其中一個引腳時,我想顯示一個信息窗口並附帶一些其他詳細信息。簡單!
我有一個延伸MapActivity(幷包含一個MapView的)類,另一個延伸覆蓋(請注意,我沒有使用ItemizedOverlay由於引腳和性能的數量遠遠太慢) 。在Overlay類中,有一個命中測試程序,用於確定用戶是否在引腳上敲擊,如果是這樣,將在引腳上方顯示一個簡單的矩形以及細節。它一切正常,但看起來並不好。
我想顯示一個很好的語音泡泡標註,其中包含一個或兩個按鈕來執行其他操作。經過很多環視後,我發現this blog post,它似乎符合法案。這篇文章強調了我在MapActivity上放置的MapView是一個ViewGroup,因此可以包含其他視圖,即代表我的語音泡泡標註的視圖。然而,儘管我可以遵循部分源代碼,但我遇到了問題,這就是我需要幫助的地方。
我已經創建了我的9patch圖像和一個佈局來包含它,並且作爲一個測試,如果我將代碼放在MapActivity類中,那麼我可以獲取要顯示的標註。問題是我需要能夠確定用戶點擊了哪個引腳,以便我可以獲取座標和相關信息,並由Overlay處理。
那麼,如何連接這個,以便當用戶點擊疊加層上的一個圖釘時,MapActivity被調用以將新的「標註視圖」添加到具有關聯文本的適當位置的MapView中?
更新:
嗯,我花了一點時間來看看我the sample project cited in the blog post參考上面,現在有一個工作執行力度。之前我曾使用ItemizedOverlay解決了這個問題,但方法足夠完善。基本上,我已經修改了我的Overlay類,以接受MapView作爲構造函數中的參數,所以現在我可以訪問它而無需回調到MapActivity。這聽起來很簡單,但我試圖離開Overlay做它需要做的事情,即顯示標記,而不必修改父級MapView。事實是,它現在可以工作,我可以繼續與其他編碼。
感謝斯特凡,我使用的教程理清命中測試並儘可能我一定要得到。由此產生的信息組件太小,我希望能夠在未來添加按鈕,我不認爲這種方法會讓我這樣做。 – DilbertDave
該鏈接無法正常工作 –