オフラインマップデータ用にMapforgeを試してみるアプリケーションを開発しています。システムに正常に統合されます。変更リストナーでズームレベルを検出し、レベルに基づいてマーカーを設定する必要があります。それ ...
@Override
public void onZoomLevelChanged(int zoomLevel) {
// TODO Auto-generated method stub
Log.i("TAG","Zoom Level has change");
int intZoom = mapView.getMapPosition().getZoomLevel();
if(intZoom <4)
{
if(!mapView.getOverlays().isEmpty())
{
mapView.getOverlays().clear();
mapView.invalidate();
mapView.getOverlays().remove(mapOverlays);
mapView.invalidate();
isFirstTimeExecution = false;
}
}
else if( intZoom >4 && intZoom < 15)
{
if(mapView.getOverlays().isEmpty() && !isFirstTimeExecution)
{
mapView.getOverlays().add(mapOverlays);
mapView.invalidate();
isFirstTimeExecution = true;
}
}
}
//ここでは基本的にズームレベル4から15にマーカーを設定したいのですが、ズームレベルを4未満にすると、削除または非表示になりますが、スレッド例外が発生した理由がわかりません。
エラー ::
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): FATAL EXCEPTION: main
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): java.lang.IllegalThreadStateException: Thread already started.
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at java.lang.Thread.start(Thread.java:1322)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at org.mapsforge.android.maps.overlay.OverlayList.setupOverlay(OverlayList.java:193)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at org.mapsforge.android.maps.overlay.OverlayList.add(OverlayList.java:53)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at org.mapsforge.android.maps.overlay.OverlayList.add(OverlayList.java:30)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at com.offlinemap.OfflinMapActivity.onZoomLevelChanged(OfflinMapActivity.java:189)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at com.offlinemap.MyMapView.dispatchDraw(MyMapView.java:176)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.View.draw(View.java:6743)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.View.draw(View.java:6743)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.widget.FrameLayout.draw(FrameLayout.java:352)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.View.draw(View.java:6743)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.widget.FrameLayout.draw(FrameLayout.java:352)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewRoot.draw(ViewRoot.java:1407)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.os.Handler.dispatchMessage(Handler.java:99)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.os.Looper.loop(Looper.java:123)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at java.lang.reflect.Method.invokeNative(Native Method)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at java.lang.reflect.Method.invoke(Method.java:521)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-11 17:20:40.161: ERROR/AndroidRuntime(5810): at dalvik.system.NativeStart.main(Native Method)