Browse Source

修改地图卡片

weicu
tanlongsheng 2 years ago
parent
commit
7652218cd4
  1. 47
      lib/modules/chat/views/chat_navigation_card.dart

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

@ -1,7 +1,9 @@
import 'dart:async';
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:http/http.dart' as http;
@ -20,12 +22,41 @@ class _ChatNavigationCardState extends State<ChatNavigationCard> {
LatLng startPoint = LatLng(116.397428, 39.90923); // 起点坐标
LatLng endPoint = LatLng(116.397026, 39.903303); // 终点坐标
late Future _mapUrl;
final _amapFlutter = AmapFlutter();
StreamSubscription? _locationStream;
String _mapUrl = '';
@override
void initState() {
super.initState();
_mapUrl = _getMapUrl();
_getLocation();
}
@override
void dispose() {
_amapFlutter.dispose();
_locationStream?.cancel();
super.dispose();
}
void _getLocation() async {
List endPointList = widget.data?['navigationcard']['location'].split(',');
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();
}
Future<String> _getMapUrl() async {
@ -159,15 +190,9 @@ class _ChatNavigationCardState extends State<ChatNavigationCard> {
Widget build(BuildContext context) {
return Column(
children: [
FutureBuilder(
future: _mapUrl,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return Image.network(snapshot.data);
}
return const CircularProgressIndicator();
},
),
_mapUrl.isNotEmpty
? Image.network(_mapUrl)
: const CircularProgressIndicator(),
],
);
}

Loading…
Cancel
Save