Closed jw-choi-hyundai closed 3 years ago
안녕하세요. PlayMap입니다.
fitPolyLine 함수는 탐색된 경로에 focus를 맞추는 함수입니다 fitPolyLine 함수 호출과는 상관 없이 탐색된 경로는 노출이 됩니다.
보내주신 소스와 전달드린 key 값으로 테스트 시에 정상적으로 경로 탐색이 노출되고 있음을 확인하였습니다. 정확한 확인을 위하여 다음을 확인 부탁드립니다.
@PlayMap-HMNS 네 경로탐색은 정상적으로 노출되고 있으면 PolyLine 데이터도 정상적으로 가져옵니다. 제가 문의 드린 사항은 경로탐색 노출이 아니라, 가져온 PolyLine을 그린 후 fitPolyLine 함수 호출 시 화면이동 및 화면에 fit하게 맞춰지는 카메라 무빙 등이 작동을 안하고 있습니다. (아래와 같은 crash 발생)
2020-11-30 10:24:13.115 4932-5036/com.playmap.playmapdev E/AndroidRuntime: FATAL EXCEPTION: Thread-10 Process: com.playmap.playmapdev, PID: 4932 com.mapbox.mapboxsdk.exceptions.CalledFromWorkerThreadException: Map interactions should happen on the UI thread. Method invoked from wrong thread is getBearing. at com.mapbox.mapboxsdk.maps.NativeMapView.checkState(NativeMapView.java:118) at com.mapbox.mapboxsdk.maps.NativeMapView.getBearing(NativeMapView.java:417) at com.mapbox.mapboxsdk.maps.Transform.getRawBearing(Transform.java:252) at com.mapbox.mapboxsdk.maps.MapboxMap.getCameraForLatLngBounds(MapboxMap.java:1458) at com.mapbox.mapboxsdk.camera.CameraUpdateFactory$CameraBoundsUpdate.getCameraPosition(CameraUpdateFactory.java:388) at com.mapbox.mapboxsdk.maps.Transform.animateCamera(Transform.java:153) at com.mapbox.mapboxsdk.maps.MapboxMap.animateCamera(MapboxMap.java:639) at com.mapbox.mapboxsdk.maps.MapboxMap.animateCamera(MapboxMap.java:612) at com.hmns.playmap.PlayMapView.setMapBounds(PlayMapView.java:1056) at com.hmns.playmap.PlayMapView.fitPolyLine(PlayMapView.java:2545) at com.playmap.playmapdev.MapActivity$5.run(MapActivity.java:138)
fitPolyLine의 경우 Cameara사용을 하므로 UI Thread에서 동작하도록 해야하는 것으로 보입니다. UI Thread에서 사용 시 정상 동작.
아래와 같이 경로 탐색 시, 항상 thread안에서 구현해야 값을 가져오기 때문에 UI Thread를 사용하는 fitPolyLine의 경우 동작이 안되는 것으로 보입니다.. (추측)
아래 소스 상에서 경로를 찾은 후 fitPolyLine을 사용할 수 있는 방법이 없을까요?
[소스]