如何将纬度和经度列表分配给Flutter中Marker类型的列表



我有一个名为positionMarkers的类型Map<String, dynamic>列表,其中包含纬度和经度以及它们的ID,我想相应地映射到类型标记列表,即List<Marker>。我需要positionMarkers中的id和lat和lng分别进入MarkerId()LatLng()。我很确定这可以通过使用循环来实现,但似乎不知道如何实现。如有任何帮助,不胜感激:

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapMarkers with ChangeNotifier {
List<Map<String, dynamic>> positionMarkers = [
{
'id': 1,
'lat': 22.6434340,
'lng': 88.446740,
},
{
'id': 2,
'lat': 22.6435442,
'lng': 88.456742,
},
{
'id': 3,
'lat': 22.6436544,
'lng': 88.466744,
},
{
'id': 4,
'lat': 22.6437646,
'lng': 88.476746,
},
{'id': 5, 'lat': 22.6438748, 'lng': 88.486748}
];
final List<Marker> markers = [
Marker(
markerId: MarkerId(),
position: LatLng(),
infoWindow: InfoWindow(),
)
];
}

这是你想要的吗?

final List<Marker> markers = [];
void _createMarkers() {
for (int i = 0; i < positionMarkers.length; i++) {
markers.add(
Marker(
markerId: MarkerId(positionMarkers[i]['id']),
position: LatLng(positionMarkers[i]['lat'], positionMarkers[i]['lng']),
infoWindow: InfoWindow(
title: 'Marker ${positionMarkers[i]['id']}',
),
),
);
}
}

试试这个,

final List<Marker> markers = List.empty(growable: true);
for (var i in positionMarkers) {
// markerId is i["id]
// lat is i["lat"]
// lng is i["lng"]
markers.add(
Marker(
markerId: MarkerId(i["id"]),
position: LatLng(i["lat"], i["lng"]),
infoWindow: InfoWindow(),
),
);
}

最新更新