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

NOverlayImage.fromWidget 동작 안되는 이슈 #255

Closed drg2533 closed 3 months ago

drg2533 commented 3 months ago

안녕하세요. 먼저 네이버맵 sdk제작에 큰 감사드립니다.

NOverlayImage.fromWidget 을 사용해서 위젯을 마커로 사용할때 이상현상이 있습니다. svg파일 두개를 stack으로 겹쳐서 위젯을 만들고 해당 위젯을 마커로 사용하고 있는데 run 모드에서는 정상적으로 마커가 보입니다 그런데 release모드로 실행하면 두 svg파일중 특정 svg파일은 마커에서 보이지 않는 현상이 나타나고 있습니다.

기본 마커의 배경으로 svgString으로 사용하고 api콜을 통해 마커에 사용할 svg파일을 가져오고 있습니다. 그런데 정작 나타나지 않는건 하드코딩으로 입력한 svg가 안나타나고 있습니다 (svg파일, png파일, svgString 전부 동일하게 해당 마커만 release모드에서 안나타나고 있습니다.) 해당 파일외 여러가지 이미지도 시도해보았는데 나타나는 이미지도 있고 안나타나는 이미지도 있습니다

아래는 제가 사용한 코드입니다.

final partnerInfo = await PartnerService.getLogoPartner('pnesystems'); // final partnerInfo = await PartnerService.getLogoPartner(partner.partnerId); final svgString = await http.read(Uri.parse(partnerInfo.logo)); final activeString = '''

'''; final inactiveString = '''

<circle cx="19.9197" cy="19.1045" r="16" fill="white"/>

''';

    double size = 50;

    final marker = Stack(
      children: [
        Positioned.fill(
          // child: SvgPicture.string(activeString),
            child: Container(width: 30, height: 30, color: Colors.yellow,)
        ),
        Positioned(
            top: 0,
            left: 20 * size / 100,
            right: 20 * size / 100,
            bottom: 15 * size / 100,
            child: Align(
                alignment: Alignment.topCenter,
                child: SvgPicture.string(
                  svgString,
                  width: double.infinity,
                ))),
      ],
    );

    final offMarker = Stack(
      children: [
        Positioned.fill(
          // child: Image.asset(Assets.carsAudi),
          child: SvgPicture.string(inactiveString),
          // child: Container(width: 30, height: 30, color: Colors.yellow,)
        ),
        Positioned(
            top: 0,
            left: 20 * size / 100,
            right: 20 * size / 100,
            bottom: 15 * size / 100,
            child: Align(
                alignment: Alignment.topCenter,
                child: SvgPicture.string(
                  svgString,
                  width: double.infinity,
                ))),
      ],
    );

    markersLogo.add({
      'partnerId': partner.partnerId,
      'marker': await NOverlayImage.fromWidget(widget: marker, size: Size(size, size), context: Get.context!),
      'offMarker': await NOverlayImage.fromWidget(widget: offMarker, size: Size(size, size), context: Get.context!)
    });
note11g commented 3 months ago

안녕하세요, 해당 이슈는 중복으로 판단됩니다. 다음은 권장되는 답변들의 링크입니다. 참고하시기 바랍니다. https://github.com/note11g/flutter_naver_map/issues/218#issuecomment-2041435215 https://github.com/note11g/flutter_naver_map/issues/221#issuecomment-2055857474 다른 이슈라고 생각되신다면, 다시 이 이슈를 열어주세요. 감사합니다.