我是Android新手,我正在嘗試從多邊形中清除未在其中觀看的地圖。我決定在Thread中完成它。但是,當我嘗試調用contains方法它拋出一個exeption「java.lang.IllegalStateException:沒有主線程」谷歌地圖latLngBounds
Thread mThread = new Thread(new Runnable() {
@Override
public void run() {
try {
while (true) {
if (mPolygones == null || mPolygones.isEmpty())
continue;
synchronized (mPolygones) {
for (int i = 0; i < mPolygones.size(); i++) {
Polygon polygon = mPolygones.get(i);
if (mLatLngBounds.contains(polygon.getPoints().get(0))) {
Intent intent = new Intent("polygon");
intent.putExtra("index", i);
mLocalBroadcastManager.sendBroadcast(intent);
}
}
}
}
} catch (Exception ex) {
ex.getMessage();
}
}
});
我從谷歌地圖在OnCameraMoveListener回調mLatLngBounds。有沒有辦法做到這一點?我將不勝感激所有建議
我會盡力描述我的任務。我從out gps模塊接收座標。頻率從2到10赫茲。我必須使用SphericalUtils.computeOffset()來處理這個座標並獲得2個更多的平行座標。當我收到下一個,我也一樣。然後我必須通過處理的座標添加多邊形。事實證明,很多polygones和地圖stucks。我的決定是對可見的每個多邊形的地圖都設置爲可視性錯誤。服務提供給活動數據,另一個線程應該使多邊形不可見。我 – DanMan
如果我的問題是在polygone.getPoints()中的問題。我不能從UI線程之外做到這一點 – DanMan