From b0377ec2fc5fcf09697ee0ddf73182cf608e766e Mon Sep 17 00:00:00 2001 From: MinUk Date: Fri, 28 Jun 2024 13:20:51 +0900 Subject: [PATCH 1/2] =?UTF-8?q?M3-118=20Feat=20:=20=EA=B0=9C=EC=9D=B8?= =?UTF-8?q?=EC=A0=84=20=ED=94=BD=EC=85=80=20=EA=B0=80=EC=A0=B8=EC=98=A4?= =?UTF-8?q?=EB=8A=94=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controllers/map_controller.dart | 9 +++++ lib/models/individual_pixel.dart | 45 +++++++++++++++++++++++ lib/service/individual_pixel_service.dart | 34 +++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 lib/models/individual_pixel.dart create mode 100644 lib/service/individual_pixel_service.dart diff --git a/lib/controllers/map_controller.dart b/lib/controllers/map_controller.dart index 2c55f4d2..a12081e3 100644 --- a/lib/controllers/map_controller.dart +++ b/lib/controllers/map_controller.dart @@ -5,7 +5,11 @@ import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:location/location.dart'; +import '../service/individual_pixel_service.dart'; + class MapController extends GetxController { + final IndividualPixelService individualPixelService = IndividualPixelService(); + static const String darkMapStylePath = 'assets/map_style/dark_map_style.txt'; static const String userMarkerId = 'USER'; @@ -25,6 +29,9 @@ class MapController extends GetxController { await updateCurrentLocation(); _createUserMarker(); _trackUserLocation(); + print('-------------http 요청-----------'); + await individualPixelService.getIndividualPixels(currentLatitude: currentLocation.latitude!, currentLongitude: currentLocation.longitude!); + print('-------------http 요청-----------'); } void _trackUserLocation() { @@ -64,4 +71,6 @@ class MapController extends GetxController { markers.removeWhere((marker) => marker.markerId.value == markerId); _addMarker(LatLng(newLocation.latitude!, newLocation.longitude!), markerId); } + + } diff --git a/lib/models/individual_pixel.dart b/lib/models/individual_pixel.dart new file mode 100644 index 00000000..873bb1a1 --- /dev/null +++ b/lib/models/individual_pixel.dart @@ -0,0 +1,45 @@ +class IndividualPixel { + final int pixelId; + final double latitude; + final double longitude; + final int userId; + final int x; + final int y; + + IndividualPixel({ + required this.pixelId, + required this.latitude, + required this.longitude, + required this.userId, + required this.x, + required this.y, + }); + + factory IndividualPixel.fromJson(Map json) { + return switch (json) { + { + 'pixelId' : var pixelId, + 'latitude' : var latitude, + 'longitude' : var longitude, + 'userId' : var userId, + 'x' : var x, + 'y' : var y, + } => + IndividualPixel( + pixelId: pixelId, + latitude: latitude, + longitude: longitude, + userId: userId, + x: x, + y: y,), + _ => throw const FormatException('Failed to load Pixel') + }; + } + + static List listFromJson(List jsonList) { + return [ + for(var element in jsonList) + IndividualPixel.fromJson(element), + ]; + } +} diff --git a/lib/service/individual_pixel_service.dart b/lib/service/individual_pixel_service.dart new file mode 100644 index 00000000..28805964 --- /dev/null +++ b/lib/service/individual_pixel_service.dart @@ -0,0 +1,34 @@ +import 'package:dio/dio.dart'; + +import '../models/individual_pixel.dart'; +import '../utils/dio_service.dart'; + +class IndividualPixelService { + static final IndividualPixelService _instance = + IndividualPixelService._internal(); + + final Dio dio = DioService().getDio(); + + IndividualPixelService._internal(); + + factory IndividualPixelService() { + return _instance; + } + + Future> getIndividualPixels({ + required double currentLatitude, + required double currentLongitude, + int radius = 1000, + }) async { + var response = await dio.get( + '/pixels/individual-mode', + queryParameters: { + 'current-latitude': currentLatitude, + 'current-longitude': currentLongitude, + 'radius': radius, + }, + ); + print(response); + return IndividualPixel.listFromJson(response.data['data']); + } +} From 18b6ee1ef445e09cde6346201a869d0cf8998b78 Mon Sep 17 00:00:00 2001 From: MinUk Date: Fri, 28 Jun 2024 13:25:07 +0900 Subject: [PATCH 2/2] =?UTF-8?q?M3-118=20Refactor=20:=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20print=EB=AC=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controllers/map_controller.dart | 4 ---- lib/service/individual_pixel_service.dart | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/controllers/map_controller.dart b/lib/controllers/map_controller.dart index a12081e3..3d0e1a09 100644 --- a/lib/controllers/map_controller.dart +++ b/lib/controllers/map_controller.dart @@ -29,9 +29,7 @@ class MapController extends GetxController { await updateCurrentLocation(); _createUserMarker(); _trackUserLocation(); - print('-------------http 요청-----------'); await individualPixelService.getIndividualPixels(currentLatitude: currentLocation.latitude!, currentLongitude: currentLocation.longitude!); - print('-------------http 요청-----------'); } void _trackUserLocation() { @@ -71,6 +69,4 @@ class MapController extends GetxController { markers.removeWhere((marker) => marker.markerId.value == markerId); _addMarker(LatLng(newLocation.latitude!, newLocation.longitude!), markerId); } - - } diff --git a/lib/service/individual_pixel_service.dart b/lib/service/individual_pixel_service.dart index 28805964..eaf7efd3 100644 --- a/lib/service/individual_pixel_service.dart +++ b/lib/service/individual_pixel_service.dart @@ -28,7 +28,7 @@ class IndividualPixelService { 'radius': radius, }, ); - print(response); + return IndividualPixel.listFromJson(response.data['data']); } }