From 66ed7b1e59b6a2778ee63f9afcede6154f2ead9f Mon Sep 17 00:00:00 2001 From: kevinmj12 Date: Tue, 4 Jun 2024 22:34:36 +0900 Subject: [PATCH 1/4] . --- lib/main.dart | 2 +- lib/screens/home/map/map_screen.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index dfefb63..52562c5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -149,7 +149,7 @@ void main() async { await dotenv.load(fileName: ".env"); await _initializeMap(); _requestPermission(); - await _getCurrentLocation(); + // await _getCurrentLocation(); // Kakao sdk 초기화 _initializeKakao(); await getFavorites(); diff --git a/lib/screens/home/map/map_screen.dart b/lib/screens/home/map/map_screen.dart index 4a7a819..6d37560 100644 --- a/lib/screens/home/map/map_screen.dart +++ b/lib/screens/home/map/map_screen.dart @@ -261,7 +261,7 @@ class _MapScreenState extends State isCameraMoved = false; }, child: Container( - width: 146, + width: 160, padding: const EdgeInsets.symmetric( vertical: 5, horizontal: 16), decoration: BoxDecoration( @@ -299,7 +299,7 @@ class _MapScreenState extends State ), ), SizedBox( - width: mapWidth / 2 - padding - alignButtonSize - 73), + width: mapWidth / 2 - padding - alignButtonSize - 80), InkWell( onTap: () { setState(() { From c5f0e3ff8708f7e8f08a31402e44da27b62a22d4 Mon Sep 17 00:00:00 2001 From: kevinmj12 Date: Tue, 4 Jun 2024 23:06:17 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=A7=80=EB=8F=84=20=ED=95=84=ED=84=B0?= =?UTF-8?q?=ED=83=9C=EA=B7=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/home/map/map_screen.dart | 198 ++++++++++++++---- .../home/map/util/map_filter_listview.dart | 31 ++- lib/style.dart | 8 +- 3 files changed, 192 insertions(+), 45 deletions(-) diff --git a/lib/screens/home/map/map_screen.dart b/lib/screens/home/map/map_screen.dart index 6d37560..8f493fe 100644 --- a/lib/screens/home/map/map_screen.dart +++ b/lib/screens/home/map/map_screen.dart @@ -10,6 +10,7 @@ import 'package:damyo/screens/home/map/ovelay_util.dart'; import 'package:damyo/screens/home/map/somking_area/smoking_area_info_card.dart'; import 'package:damyo/screens/home/map/util/map_filter_listview.dart'; import 'package:damyo/services/smoking_area_service.dart'; +import 'package:damyo/style.dart'; import 'package:flutter/material.dart'; import 'package:flutter_naver_map/flutter_naver_map.dart'; import 'package:go_router/go_router.dart'; @@ -95,6 +96,22 @@ class _MapScreenState extends State } // 필터 목록 + Map searchFilterMap = { + "status": null, + "opened": null, + "closed": null, + "hygiene": null, + "dirty": null, + "airOut": null, + "noExist": null, + "indoor": null, + "outdoor": null, + "big": null, + "small": null, + "crowded": null, + "quite": null, + "chair": null, + }; final List _mapFilterCharacterList = [ '실외', @@ -103,6 +120,7 @@ class _MapScreenState extends State '청결한', '의자가 있는', ]; + int _selectedFilterIndex = -1; BottomDrawerController bottomDrawerController = BottomDrawerController(); @@ -144,9 +162,6 @@ class _MapScreenState extends State log("onMapReady", name: "onMapReady"); await updateMap(userLatitude, userLongitude); - // attachOverlay(SaBasicModel( - // '1', "국민대 도서관 1", 37.65640, 127.11670, "2323", 5)); - // attachOverlay(SaBasicModel(2, "국민대 도서관 2", 37.65690, 127.11720)); }, onMapTapped: (point, latLng) { smokingAreaSelected = false; @@ -184,21 +199,19 @@ class _MapScreenState extends State ], ), padding: const EdgeInsets.only(left: 10), - child: const Row( + child: Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Icon( + const Icon( Icons.search, size: iconSize, ), - SizedBox(width: 10), - Text( - "흡연구역 검색", - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Color(0xFF6F767F), - ), + const SizedBox(width: 10), + textFormat( + text: "흡연구역 검색", + fontSize: 16, + fontWeight: FontWeight.w500, + color: const Color(0xFF6F767F), ), ], ), @@ -211,8 +224,101 @@ class _MapScreenState extends State Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - MapFilterListview( - characterList: _mapFilterCharacterList, + Container( + width: MediaQuery.of(context).size.width - 70, + height: 35, + alignment: Alignment.centerLeft, + child: ListView.builder( + itemCount: _mapFilterCharacterList.length, + scrollDirection: Axis.horizontal, + itemBuilder: (context, index) { + return Padding( + padding: EdgeInsets.only( + right: index == _mapFilterCharacterList.length - 1 + ? 5 + : 10, + bottom: 5, + ), // 마지막 아이템에는 패딩을 적용하지 않음. + child: GestureDetector( + onTap: () async { + setState(() { + if (_selectedFilterIndex == index) { + _selectedFilterIndex = -1; + if (index == 0) { + searchFilterMap['outdoor'] = null; + } else if (index == 1) { + searchFilterMap['opened'] = null; + } else if (index == 2) { + searchFilterMap['quite'] = null; + } else if (index == 3) { + searchFilterMap['hygiene'] = null; + } else { + searchFilterMap['chair'] = null; + } + } else { + _selectedFilterIndex = index; + if (index == 0) { + searchFilterMap['outdoor'] = true; + } else if (index == 1) { + searchFilterMap['opened'] = true; + } else if (index == 2) { + searchFilterMap['quite'] = true; + } else if (index == 3) { + searchFilterMap['hygiene'] = true; + } else { + searchFilterMap['chair'] = true; + } + } + }); + updateMap(_nowCameraPosition!.target.latitude, + _nowCameraPosition!.target.longitude); + print(searchFilterMap); + }, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 15, + ), + decoration: BoxDecoration( + color: _selectedFilterIndex == index + ? Theme.of(context).colorScheme.onPrimary + : Colors.white, + borderRadius: BorderRadius.circular(16), + border: _selectedFilterIndex == index + ? Border.all( + color: Theme.of(context) + .colorScheme + .primary, + ) + : Border.all( + color: const Color(0xffE4E7EB), + ), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.5), + spreadRadius: 0, + blurRadius: 2.0, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), + child: Align( + alignment: Alignment.center, + child: Text( + _mapFilterCharacterList[index], + style: const TextStyle( + color: Color(0xFF464D57), + fontSize: 12, + fontFamily: 'Pretendard', + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ), + ); + }, + ), ), const SizedBox(width: 10), // 필터 설정 버튼 @@ -261,7 +367,7 @@ class _MapScreenState extends State isCameraMoved = false; }, child: Container( - width: 160, + width: 146, padding: const EdgeInsets.symmetric( vertical: 5, horizontal: 16), decoration: BoxDecoration( @@ -278,20 +384,18 @@ class _MapScreenState extends State ), ], ), - child: const Row( + child: Row( children: [ - Icon( + const Icon( Icons.refresh_rounded, color: Color(0xFF0099FC), size: 20, ), - Text( - "이 위치에서 재탐색", - style: TextStyle( - color: Color(0xFF0099FC), - fontWeight: FontWeight.w600, - fontSize: 12, - ), + textFormat( + text: "이 위치에서 재탐색", + color: const Color(0xFF0099FC), + fontWeight: FontWeight.w600, + fontSize: 12, ) ], ), @@ -299,7 +403,7 @@ class _MapScreenState extends State ), ), SizedBox( - width: mapWidth / 2 - padding - alignButtonSize - 80), + width: mapWidth / 2 - padding - alignButtonSize - 73), InkWell( onTap: () { setState(() { @@ -325,18 +429,18 @@ class _MapScreenState extends State ), ], ), - child: const Column( + child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon( + const Icon( Icons.add_location_alt_outlined, size: iconSize, color: Color(0xff6f767f), ), - Text( - '제보', - style: TextStyle( - fontSize: 12, color: Color(0xff6f767f)), + textFormat( + text: '제보', + fontSize: 12, + color: const Color(0xff6f767f), ), ], ), @@ -372,18 +476,18 @@ class _MapScreenState extends State ), ], ), - child: const Column( + child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon( + const Icon( Icons.star_border_rounded, size: iconSize, color: Color(0xff6f767f), ), - Text( - '저장', - style: TextStyle( - fontSize: 12, color: Color(0xff6f767f)), + textFormat( + text: '저장', + fontSize: 12, + color: const Color(0xff6f767f), ), ], ), @@ -429,7 +533,9 @@ class _MapScreenState extends State extra: '${stringCoordinate(_nowCameraPosition?.target.longitude)},${stringCoordinate(_nowCameraPosition?.target.latitude)}'); }, - child: const Text('제보하기'), + child: textFormat( + text: '제보하기', + color: Theme.of(context).primaryColor), ), ), ], @@ -465,6 +571,20 @@ class _MapScreenState extends State latitude: lat, longitude: lng, range: 0.01, + status: searchFilterMap['satatus'], + opened: searchFilterMap['opened'], + closed: searchFilterMap['opened'], + hygiene: searchFilterMap['hygiene'], + dirty: searchFilterMap['dirty'], + airOut: searchFilterMap['airOut'], + noExist: searchFilterMap['noExist'], + indoor: searchFilterMap['indoor'], + outdoor: searchFilterMap['outdoor'], + big: searchFilterMap['big'], + small: searchFilterMap['small'], + crowded: searchFilterMap['crowded'], + quite: searchFilterMap['quite'], + chair: searchFilterMap['chair'], ); List smokingAreaList = diff --git a/lib/screens/home/map/util/map_filter_listview.dart b/lib/screens/home/map/util/map_filter_listview.dart index 8616e25..299c340 100644 --- a/lib/screens/home/map/util/map_filter_listview.dart +++ b/lib/screens/home/map/util/map_filter_listview.dart @@ -2,9 +2,13 @@ import 'package:flutter/material.dart'; class MapFilterListview extends StatefulWidget { final List characterList; - const MapFilterListview({ + final Future filterOnClick; + Map searchFilterMap; + MapFilterListview({ super.key, required this.characterList, + required this.filterOnClick, + required this.searchFilterMap, }); @override @@ -29,14 +33,37 @@ class _MapFilterListviewState extends State { bottom: 5, ), // 마지막 아이템에는 패딩을 적용하지 않음. child: GestureDetector( - onTap: () { + onTap: () async { setState(() { if (_selectedIndex == index) { _selectedIndex = -1; + if (index == 1) { + widget.searchFilterMap['outdoor'] = null; + } else if (index == 2) { + widget.searchFilterMap['opened'] = null; + } else if (index == 3) { + widget.searchFilterMap['quite'] = null; + } else if (index == 4) { + widget.searchFilterMap['hygiene'] = null; + } else { + widget.searchFilterMap['chair'] = null; + } } else { _selectedIndex = index; + if (index == 1) { + widget.searchFilterMap['outdoor'] = true; + } else if (index == 2) { + widget.searchFilterMap['opened'] = true; + } else if (index == 3) { + widget.searchFilterMap['quite'] = true; + } else if (index == 4) { + widget.searchFilterMap['hygiene'] = true; + } else { + widget.searchFilterMap['chair'] = true; + } } }); + // await widget.filterOnClick; }, child: Container( padding: const EdgeInsets.symmetric( diff --git a/lib/style.dart b/lib/style.dart index b455eec..57e2588 100644 --- a/lib/style.dart +++ b/lib/style.dart @@ -2,19 +2,19 @@ import 'package:flutter/material.dart'; Text textFormat( {required String text, - double fontsize = 14, + double fontSize = 14, Color? color = Colors.black, FontWeight fontWeight = FontWeight.normal, - TextOverflow? textoverflow}) { + TextOverflow? textOverflow}) { return Text( text, style: TextStyle( - fontSize: fontsize, + fontSize: fontSize, fontFamily: 'Pretendard', fontWeight: fontWeight, color: color, ), textScaler: TextScaler.noScaling, - overflow: textoverflow, + overflow: textOverflow, ); } From f4804228327cfc69e1e67ddd60370d6c2254efd7 Mon Sep 17 00:00:00 2001 From: kevinmj12 Date: Wed, 5 Jun 2024 00:53:15 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=ED=95=84=ED=84=B0=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/map/filter/smoking_area_filter.dart | 183 +++++++++++++++--- .../filter/smoking_area_filter_listview.dart | 4 + lib/screens/home/map/map_screen.dart | 51 +++-- 3 files changed, 197 insertions(+), 41 deletions(-) diff --git a/lib/screens/home/map/filter/smoking_area_filter.dart b/lib/screens/home/map/filter/smoking_area_filter.dart index 0093c36..3dbe8ab 100644 --- a/lib/screens/home/map/filter/smoking_area_filter.dart +++ b/lib/screens/home/map/filter/smoking_area_filter.dart @@ -2,8 +2,111 @@ import 'package:damyo/screens/home/map/filter/smoking_area_filter_listview.dart' import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:go_router/go_router.dart'; + +Future filterScreen(BuildContext context, + Map searchFilterMap, Function applyFilter) { + List filterIndexList = [-1, -1, -1, -1, -1, -1, -1, -1]; + + // 실내 실외 + if (searchFilterMap['indoor'] == true) { + filterIndexList[1] = 0; + } else if (searchFilterMap['indoor'] == false) { + filterIndexList[1] = 1; + } + // 개방 폐쇄 + if (searchFilterMap['opened'] == true) { + filterIndexList[2] = 0; + } else if (searchFilterMap['opened'] == false) { + filterIndexList[2] = 1; + } + // 커요 작아요 + if (searchFilterMap['big'] == true) { + filterIndexList[3] = 0; + } else if (searchFilterMap['big'] == false) { + filterIndexList[3] = 1; + } + // 청결해요 + if (searchFilterMap['hygiene'] == true) { + filterIndexList[4] = 0; + } + // 한산해요 + if (searchFilterMap['quite'] == true) { + filterIndexList[5] = 0; + } + // 의자가 있어요 + if (searchFilterMap['chair'] == true) { + filterIndexList[6] = 0; + } + // 환기성이 좋아요 + if (searchFilterMap['airOut'] == true) { + filterIndexList[7] = 0; + } + + void setIndex(int index, int value) { + filterIndexList[index] = value; + } + + void setFilter() { + // 실내 실외 + if (filterIndexList[1] == 0) { + searchFilterMap['indoor'] = true; + searchFilterMap['outdoor'] = false; + } else if (filterIndexList[1] == 1) { + searchFilterMap['indoor'] = false; + searchFilterMap['outdoor'] = true; + } else { + searchFilterMap['indoor'] = null; + searchFilterMap['outdoor'] = null; + } + // 개방 폐쇄 + if (filterIndexList[2] == 0) { + searchFilterMap['opened'] = true; + searchFilterMap['closed'] = false; + } else if (filterIndexList[2] == 1) { + searchFilterMap['opened'] = false; + searchFilterMap['closed'] = true; + } else { + searchFilterMap['opened'] = null; + searchFilterMap['closed'] = null; + } + // 커요 작아요 + if (filterIndexList[3] == 0) { + searchFilterMap['big'] = true; + searchFilterMap['small'] = false; + } else if (filterIndexList[3] == 1) { + searchFilterMap['big'] = false; + searchFilterMap['small'] = true; + } else { + searchFilterMap['big'] = null; + searchFilterMap['small'] = null; + } + // 청결해요 + if (filterIndexList[4] == 0) { + searchFilterMap['hygiene'] = true; + } else { + searchFilterMap['hygiene'] = null; + } + // 한산해요 + if (filterIndexList[5] == 0) { + searchFilterMap['quite'] = true; + } else { + searchFilterMap['quite'] = null; + } + // 의자가 있어요 + if (filterIndexList[6] == 0) { + searchFilterMap['chair'] = true; + } else { + searchFilterMap['chair'] = null; + } + // 환기성이 좋아요 + if (filterIndexList[7] == 0) { + searchFilterMap['airOut'] = true; + } else { + searchFilterMap['airOut'] = null; + } + } -Future filterScreen(BuildContext context) { return showModalBottomSheet( context: context, isScrollControlled: true, @@ -20,7 +123,7 @@ Future filterScreen(BuildContext context) { topRight: Radius.circular(20), ), child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.symmetric(horizontal: 16), child: Column( children: [ SizedBox(height: 14.h), @@ -41,21 +144,21 @@ Future filterScreen(BuildContext context) { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - "별점", - style: Theme.of(context).textTheme.displaySmall, - ), - const SizedBox(height: 20), - FilterListview( - characterList: const [ - '1점 이상', - '2점 이상', - '3점 이상', - '4점 이상', - '5점 이상' - ], - selectedCharacterIndex: -1, - ), + // Text( + // "별점", + // style: Theme.of(context).textTheme.displaySmall, + // ), + // const SizedBox(height: 20), + // FilterListview( + // characterList: const [ + // '1점 이상', + // '2점 이상', + // '3점 이상', + // '4점 이상', + // '5점 이상' + // ], + // selectedCharacterIndex: -1, + // ), const SizedBox(height: 20), Text( "실내 여부", @@ -67,7 +170,10 @@ Future filterScreen(BuildContext context) { '실내', '실외', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[1], + setIndex: (v) { + setIndex(1, v); + }, ), const SizedBox(height: 20), Text( @@ -80,7 +186,10 @@ Future filterScreen(BuildContext context) { '개방형', '폐쇄형', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[2], + setIndex: (v) { + setIndex(2, v); + }, ), const SizedBox(height: 20), Text( @@ -93,49 +202,69 @@ Future filterScreen(BuildContext context) { '흡연구역이 커요', '흡연구역이 작아요', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[3], + setIndex: (v) { + setIndex(3, v); + }, ), const SizedBox(height: 20), FilterListview( characterList: const [ '흡연실이 청결해요', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[4], + setIndex: (v) { + setIndex(4, v); + }, ), const SizedBox(height: 20), FilterListview( characterList: const [ '흡연실이 한산해요', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[5], + setIndex: (v) { + setIndex(5, v); + }, ), const SizedBox(height: 20), FilterListview( characterList: const [ '의자가 있어요', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[6], + setIndex: (v) { + setIndex(6, v); + }, ), const SizedBox(height: 20), FilterListview( characterList: const [ '환기성이 좋아요', ], - selectedCharacterIndex: -1, + selectedCharacterIndex: filterIndexList[7], + setIndex: (v) { + setIndex(7, v); + }, ), + const SizedBox(height: 10), ], ), ), ), - const SizedBox(height: 20), + const SizedBox(height: 10), InkWell( - onTap: () {}, + onTap: () async { + setFilter(); + applyFilter(); + context.pop(); + }, child: Ink( width: double.infinity, height: 47.h, decoration: const BoxDecoration( color: Colors.blue, - borderRadius: BorderRadius.all(Radius.circular(16)), + borderRadius: BorderRadius.all(Radius.circular(26)), ), child: const Align( alignment: Alignment.center, diff --git a/lib/screens/home/map/filter/smoking_area_filter_listview.dart b/lib/screens/home/map/filter/smoking_area_filter_listview.dart index a4e6769..deac960 100644 --- a/lib/screens/home/map/filter/smoking_area_filter_listview.dart +++ b/lib/screens/home/map/filter/smoking_area_filter_listview.dart @@ -52,10 +52,12 @@ import 'package:flutter/material.dart'; class FilterListview extends StatefulWidget { final List characterList; int selectedCharacterIndex; + Function(int) setIndex; FilterListview({ super.key, required this.characterList, required this.selectedCharacterIndex, + required this.setIndex, }); @override @@ -85,8 +87,10 @@ class _FilterListviewState extends State { setState(() { if (widget.selectedCharacterIndex == index) { widget.selectedCharacterIndex = -1; + widget.setIndex(-1); } else { widget.selectedCharacterIndex = index; + widget.setIndex(index); } }); }, diff --git a/lib/screens/home/map/map_screen.dart b/lib/screens/home/map/map_screen.dart index 8f493fe..5e5e34b 100644 --- a/lib/screens/home/map/map_screen.dart +++ b/lib/screens/home/map/map_screen.dart @@ -112,6 +112,21 @@ class _MapScreenState extends State "quite": null, "chair": null, }; + void resetFilter() { + searchFilterMap['opened'] = null; + searchFilterMap['closed'] = null; + searchFilterMap['hygiene'] = null; + searchFilterMap['dirty'] = null; + searchFilterMap['airOut'] = null; + searchFilterMap['noExist'] = null; + searchFilterMap['indoor'] = null; + searchFilterMap['outdoor'] = null; + searchFilterMap['big'] = null; + searchFilterMap['small'] = null; + searchFilterMap['crowded'] = null; + searchFilterMap['quite'] = null; + searchFilterMap['chair'] = null; + } final List _mapFilterCharacterList = [ '실외', @@ -244,23 +259,16 @@ class _MapScreenState extends State setState(() { if (_selectedFilterIndex == index) { _selectedFilterIndex = -1; - if (index == 0) { - searchFilterMap['outdoor'] = null; - } else if (index == 1) { - searchFilterMap['opened'] = null; - } else if (index == 2) { - searchFilterMap['quite'] = null; - } else if (index == 3) { - searchFilterMap['hygiene'] = null; - } else { - searchFilterMap['chair'] = null; - } + resetFilter(); } else { _selectedFilterIndex = index; + resetFilter(); if (index == 0) { searchFilterMap['outdoor'] = true; + searchFilterMap['indoor'] = false; } else if (index == 1) { searchFilterMap['opened'] = true; + searchFilterMap['closed'] = false; } else if (index == 2) { searchFilterMap['quite'] = true; } else if (index == 3) { @@ -272,7 +280,6 @@ class _MapScreenState extends State }); updateMap(_nowCameraPosition!.target.latitude, _nowCameraPosition!.target.longitude); - print(searchFilterMap); }, child: Container( padding: const EdgeInsets.symmetric( @@ -323,8 +330,18 @@ class _MapScreenState extends State const SizedBox(width: 10), // 필터 설정 버튼 InkWell( - onTap: () { - filterScreen(context); + onTap: () async { + clickApplyFilter = false; + await filterScreen( + context, + searchFilterMap, + applyFilter, + ); + if (clickApplyFilter) { + _selectedFilterIndex = -1; + updateMap(_nowCameraPosition!.target.latitude, + _nowCameraPosition!.target.longitude); + } }, child: Container( width: alignButtonSize, @@ -615,6 +632,12 @@ class _MapScreenState extends State mapController!.addOverlay(marker); } + bool clickApplyFilter = false; + + void applyFilter() { + clickApplyFilter = true; + } + void onCameraChange() async { _nowCameraPosition = mapController?.nowCameraPosition; isCameraMoved = true; From 6f95ce09b372dcd6229cc23032cf5e99820b9940 Mon Sep 17 00:00:00 2001 From: kevinmj12 Date: Wed, 5 Jun 2024 00:53:50 +0900 Subject: [PATCH 4/4] getCurrentLocation --- lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index a12501d..b1a4a63 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -150,7 +150,7 @@ void main() async { await dotenv.load(fileName: ".env"); await _initializeMap(); _requestPermission(); - // await _getCurrentLocation(); + await _getCurrentLocation(); // Kakao sdk 초기화 _initializeKakao(); await getFavorites();