私はアンドロイドで新しく、私は1つでも見えないポリゴンから地図をきれいにしようとしています。私はスレッドでそれをすることにしました。 「:未メインスレッド上java.lang.IllegalStateException」Googleマップ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を取得し、私が呼び出すしようとすると、しかし、それはexeptionをスローするメソッドが含まれています。これを行う方法はありますか?すべてのアドバイスをいただければ幸いです。
私は自分の仕事を記述しようとします。私はgpsモジュールから座標を受け取ります。 2~10Hzの周波数。私はこの座標を処理し、SphericalUtils.computeOffset()を使って2つの平行な座標を取得する必要があります。私が次に受け取るとき、私は同じことをする。そして、処理された座標にポリゴンを追加する必要があります。それはたくさんのポリゴンとマップスタックを引き起こします。私の決定は、マップから見える部分から残る各ポリゴンについて、無効をfalseに設定しています。サービスは活動データに与え、別のスレッドはポリゴンを不可視にする必要があります。私 – DanMan
私の質問の場合、trubleはpolygone.getPoints()にありました。私は外部のUIスレッドからそれを行うことはできません – DanMan