1. 程式人生 > >ArcGIS API for Android解惑:Graphic.getUid()總是返回-1

ArcGIS API for Android解惑:Graphic.getUid()總是返回-1

問題描述:
最近使用ArcGIS API for Android開發手機應用,GraphicsLayer裡包含很多個24個時刻的散點資料,每個時刻的散點資料作為一個MultiPoint物件新增到Graphic中,然後將24個Graphic整體新增到GraphicsLayer中。

目的:
使用時間控制條控制那個時刻的散點資料應該被顯示,看ArcGIS API文件看到GraphicsLayer類中的setGraphicVisible()方法正是我所需要的。

這裡寫圖片描述

方法需要uid引數,在API文件中我也找到了對應獲取uid的方法。

這裡寫圖片描述

但是獲取到的 uid 總是 -1,我一開始的思路是建立一個新的Graphic物件,就獲取他的 uid 儲存起來,但發現這樣是取不到的,網上也沒找到相關資料,然後仔細檢視API的相關方法,終於找到了另一種方法。

解決方法:

首先使用GraphicsLayer類的getGraphicIDs()方法獲取所有的 uid,然後再根據這個 uid獲取對應的Graphic,最後遍歷判斷這個Graphic是否是你想要的。

這裡寫圖片描述

這裡寫圖片描述

附加(2016.08.05):

之前一直忽略了 GraphicsLayer.addGraphic(graphic); 這個方法的返回值,API文件中指出返回的正是 uid,好吧!如果想獲取graphic的uid值直接接收方法的返回值就可以了,以後要仔細看API啦!