searchByCategory method
Implementation
@override
Future<List<PowerMapSearchResult>> searchByCategory(
String categoryId,
LatLng location, {
int dist = 5,
String lang = 'auto',
}) async {
final baseUrl = PowerMapSDK.baseUrl;
final uri = Uri.parse(
'$baseUrl/api/v2/map/cate_v2?coor=${location.latitude},${location.longitude}&dist=$dist&type=$categoryId',
);
try {
final response = await http.get(
uri,
headers: await PowerMapSDK.getServiceHeaders(),
);
if (response.statusCode == 200) {
final List<dynamic> data = json.decode(response.body);
return data.map((item) => PowerMapSearchResult.fromJson(item, lang: lang)).toList();
} else if (response.statusCode == 401 || response.statusCode == 403) {
throw PowerMapException(
code: PowerMapException.auth,
message: 'Authentication failed for category search request.',
);
} else {
throw PowerMapException(
code: PowerMapException.serverError,
message:
'Category Search API returned error status: ${response.statusCode}',
details: response.body,
);
}
} catch (e) {
if (e is PowerMapException) rethrow;
throw PowerMapException(
code: PowerMapException.network,
message: 'Category search request failed due to a network error.',
details: e,
);
}
}