这是我的代码,我没有名为value的变量 这是我从数据库中获取的功能:
getMarker() async {
// List list = List();
String myUrl = "http://10.25.20.30:5000/api/markers";
var response = await http.get(myUrl,
headers: {
'Accept': 'application/json',
});
return response.body;
我的回复正文如下:[{“ log”:“-7.939147”,“ lag”:“ 32.222754”},{“ log”:“-8.004948”,“ lag”:“ 31.621737”} ,{“ log”:“-8.017168”,“ lag”:“ 31.636198”}]
这是从我的json文件中获取标记的代码
Future<String> loadString() async =>
await databaseHelper.getMarker();
List<Marker> allMarkers = [];
void initState() {
super.initState();
_future = loadString();
}
我要在这里建立标记:
return Container(
height: MediaQuery
.of(context)
.size
.height,
width: MediaQuery
.of(context)
.size
.width,
child: FutureBuilder(
future: _future,
builder: (context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
List<dynamic> parsedJson = jsonDecode(snapshot.data);
allMarkers = parsedJson.map((element) {
return Marker(
position: LatLng(double.parse(element['log']),double.parse(element['lag'])));
}).toList();
return GoogleMap(
mapType: MapType.normal,
initialCameraPosition: CameraPosition(
target: LatLng(double.parse(userLocation.latitude.toString()),
double.parse(userLocation.longitude.toString())), zoom: 12),
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
markers:Set.from(allMarkers),
);
}
)
);
}
我不知道问题出在哪里,因为我没有任何叫做“ value”的值,所以pllz帮我,我需要它...。
答案 0 :(得分:0)
嗨,这件事在我身上发生了很多,每次发生时,我通过其中一个空 参数功能。
最好的方法是启动调试器,然后开始寻找值 不能为空。
我会说检查您的所有标记列表。 希望这会有所帮助!
答案 1 :(得分:0)
以防万一有人遇到同样的问题...
在将markerId添加到Marker()构造函数之前,我遇到了完全相同的问题。就我而言,每个标记都有一个唯一的字符串:
markers.add(Marker( markerId:MarkerId(e ['sid']), 位置:LatLng( e ['lat'], e ['lon'], )));