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

Loading…
Cancel
Save