Browse Source

修改地图卡片

weicu
tanlongsheng 2 years ago
parent
commit
643246d98b
  1. 44
      lib/modules/chat/views/chat_navigation_card.dart

44
lib/modules/chat/views/chat_navigation_card.dart

@ -3,7 +3,6 @@ import 'dart:convert';
import 'dart:math';
import 'dart:math' as math;
import 'package:amap_flutter/amap_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:http/http.dart' as http;
@ -25,10 +24,7 @@ class _ChatNavigationCardState extends State<ChatNavigationCard> {
LatLng startPoint = LatLng(116.397428, 39.90923); // 起点坐标
LatLng endPoint = LatLng(116.397026, 39.903303); // 终点坐标
final _amapFlutter = AmapFlutter();
StreamSubscription? _locationStream;
String _mapUrl = '';
late Future _mapUrl;
@override
void initState() {
@ -36,30 +32,18 @@ class _ChatNavigationCardState extends State<ChatNavigationCard> {
_getLocation();
}
@override
void dispose() {
_amapFlutter.dispose();
_locationStream?.cancel();
super.dispose();
}
void _getLocation() async {
void _getLocation() {
List startPointList = widget.data?['location'].split(',');
List endPointList = widget.data?['destination'].split(',');
startPoint = LatLng(
double.parse(startPointList[0]),
double.parse(startPointList[1]),
);
endPoint = LatLng(
double.parse(endPointList[0]),
double.parse(endPointList[1]),
);
await _amapFlutter.initLocation();
_locationStream = _amapFlutter.locationStream().listen((data) async {
startPoint = LatLng(
data['longitude'],
data['latitude'],
);
_mapUrl = await _getMapUrl();
_amapFlutter.stopLocation();
setState(() {});
});
_amapFlutter.startLocation();
_mapUrl = _getMapUrl();
}
Future<String> _getMapUrl() async {
@ -193,9 +177,15 @@ class _ChatNavigationCardState extends State<ChatNavigationCard> {
Widget build(BuildContext context) {
return Column(
children: [
_mapUrl.isNotEmpty
? Image.network(_mapUrl)
: const CircularProgressIndicator(),
FutureBuilder(
future: _mapUrl,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return Image.network(snapshot.data);
}
return const CircularProgressIndicator();
},
),
10.verticalSpace,
Text(
widget.content,

Loading…
Cancel
Save