note11g / flutter_naver_map

Naver Mobile Dynamic Map SDK for Flutter (unofficial)
BSD 3-Clause "New" or "Revised" License
143 stars 69 forks source link

[Android, Emulator Only] NLocationOverlay에 subIcon 지정시, icon이 보이지 않는 문제 #176

Open Dale-Sprint opened 9 months ago

Dale-Sprint commented 9 months ago

안녕하세요 ! NaverMap에서 제가 설정한 이미지로 현재 위치를 보여주는 것을 성공했습니다 !

그리고, 현재 바라보고 있는 방향을 표시하고 싶어서 말씀해주신 subIcon을 사용해서 이미지를 추가하려고 하는데, subIcon을 등록하게 되면 기존 이미지는 사라지고, subIcon만 보이게 되는 이슈가 있습니다.

제가 구현하려고 하는 것은 tomotomo App에서 처럼 image

빨간색 테두리 한 것처럼 기존 이미지의 하위(subIcon)으로 사용하려고 합니다 !

첨부한 이미지처럼 subIcon은 png 파일을 구했습니다만 적용에 어려움이 있습니다.

setSubIcon을 적용하기 전

image

setSubIcon을 적용한 후

image

구현한 코드는 아래에 공유하겠습니다 !

Future<void> _setCustomMarkerIcon(
      BuildContext context, Position position) async {
    final directory = await getApplicationDocumentsDirectory();
    final String profilePath =
        "${directory.path}/${widget.userName}_profile_image.png";

    final directoryPath = Directory(directory.path);

    if (await directoryPath.exists()) {
      directory.list().listen((file) {
        print(file.path);
      });
    } else {
      print("디렉토리가 존재하지 않습니다.");
    }

    final iconImage = NOverlayImage.fromFile(File(profilePath));
    const subIcon =
        NOverlayImage.fromAssetImage('asset/images/map/subIcon.png');

    final locationOverlay = await mapController!.getLocationOverlay();
    locationOverlay.setIcon(iconImage);
    locationOverlay.setIconSize(const Size.fromRadius(30));
    locationOverlay.setCircleRadius(50.0);
    locationOverlay.setCircleColor(Colors.yellow.withOpacity(0.3));

    // // TODO:: subIcon 구현
    locationOverlay.setSubIcon(subIcon);
    locationOverlay.setBearing(50.0);
    locationOverlay.setIsVisible(true);

    locationOverlay.setPosition(NLatLng(position.latitude, position.longitude));

    // 카메라 포지션 객체 생성
    NCameraPosition nCameraPosition = NCameraPosition(
      target: NLatLng(position.latitude, position.longitude),
      zoom: 17,
    );

    // 카메라 업데이트 객체 생성 및 애니메이션 설정
    NCameraUpdate.fromCameraPosition(nCameraPosition).setAnimation(
      animation: NCameraAnimation.linear,
      duration: const Duration(seconds: 2),
    );

    print("좌표 이동: $latitude, $longitude");
  }

해당 메서드의 코드 계층도 공유드립니다 !

image

note11g commented 9 months ago

안녕하세요, 이슈를 제보해주셔서 감사드립니다. 재현을 위해, 해당 이슈가 어떤 환경에서 재현되는지 정보가 필요합니다. 플랫폼 정보, flutter doctor 정보, 두가지를 부탁드릴 수 있을까요?

Dale-Sprint commented 9 months ago

안녕하세요 ! 현재 안드로이드 에뮬레이터에서만 테스트 하였는데, 정보를 어떻게 말씀드려야 할지 몰라서, 사용중인 플랫폼 기기 정보 캡쳐 전달드립니다 !

image image

flutter doctor Info

image
> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.5, on macOS 14.2.1 23C71 darwin-arm64, locale ko-KR)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.3)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

추가적인 정보가 필요하시면 언제든지 말씀주세요 😃 감사합니다 !

note11g commented 9 months ago

Android Emulator에서만 확인됨. Android 실제 기기와 iOS에서는 재현되지 않음. Tested on Pixel 4 Emulator (Android 13), Galaxy S23 Ultra (Android 14), iPhone 15 pro Simulator (iOS 17.2)

note11g commented 9 months ago

해당 이슈는 실기기에서는 재현되지 않는 이슈입니다. 네이버 맵 SDK 자체의 이슈로 보이며, 네이버 측에 레포트하도록 하겠습니다. 감사합니다.

Dale-Sprint commented 9 months ago

에뮬레이터와 안드로이드 실기기 모두 안 되는데, 에뮬레이터에서는 되시나요 ..?

note11g commented 9 months ago

@Dale-Sprint 실기기에서도 동일 현상이 발생하신다면, 해당 기기 정보를 알려주세요. 감사합니다.

Dale-Sprint commented 9 months ago

@note11g https://github.com/note11g/flutter_naver_map/issues/176#issuecomment-1925032796

image

이 답변에 있습니다 ! ㅎㅎ

note11g commented 9 months ago

@Dale-Sprint 현재 작성하신 코드를 보여주세요. 다른 이슈에서 말씀드렸던 컨트롤러나 그런 부분들이 보이지 않네요.

note11g commented 9 months ago

해당 이슈에 대해, 네이버로부터 답변받은 내용입니다.

네이버 지도 SDK 공식 답변 요약 내부적으로 인지하고 있으나, 에뮬레이터에서만 발생하는 이슈이기에, 당장은 아니지만 빠른 시일내 수정을 검토.