Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何从API中获取标记并在地图上显示_Flutter_Google Maps - Fatal编程技术网

Flutter 如何从API中获取标记并在地图上显示

Flutter 如何从API中获取标记并在地图上显示,flutter,google-maps,Flutter,Google Maps,我在Flatter中制作了一个简单的应用程序,从API中获取标记并在Google地图上绘制它们 我用位置名称创建了一个模型,我从API获得了标记信息,并将它们添加到标记列表中 但当我运行我的应用程序时,地图上并没有显示任何标记 我怎样才能解决这个问题 从API获取标记的My函数: Future<List<Location>> getLocations() async { try { var url = 'http://10.0.2.2/Track_Ap

我在Flatter中制作了一个简单的应用程序,从API中获取标记并在Google地图上绘制它们

我用位置名称创建了一个模型,我从API获得了标记信息,并将它们添加到标记列表中

但当我运行我的应用程序时,地图上并没有显示任何标记

我怎样才能解决这个问题

从API获取标记的My函数:

Future<List<Location>> getLocations() async {
    try {
      var url = 'http://10.0.2.2/Track_App/locations.php';
      final resp = await http.get(url);
      final responsebody = jsonDecode(resp.body);
      return responsebody; //this return a list
    } catch (e) {
      return [];
    }
  }

  List<Marker> allMarkers = [];

  loadLocations() async {
    List<Location> locations;
    locations = [];
    locations = await getLocations(); //we store the response in a list
    for (var i = 0; i < locations.length; i++) {
      LatLng latlng;
      latlng = LatLng(
        double.parse(locations[i].locX),
        double.parse(locations[i].locY),
      );
      allMarkers.add(
        Marker(
          markerId: MarkerId(locations[i].locId.toString()),
          position: latlng,
        ),
      );
    }
    setState(() {});
  }
FutureBuilder(
              future: loadLocations(),
              builder: (BuildContext context, AsyncSnapshot snapshot) {
                return GoogleMap(
                  mapType: MapType.normal,
                  initialCameraPosition: _kGooglePlex,
                  markers: snapshot.data,
                );
              },
            ),
[
 {
  loc_id: "1 ",
  loc_x: "15.392567",
  loc_y: "44.278188"
 },
 {
  loc_id: "2 ",
  loc_x: "15.391717",
  loc_y: "44.278019"
 }
]
class Location {
  Location({
    this.locId,
    this.locX,
    this.locY,
    this.locInfo,
    this.locSpd,
    this.locDate,
  });
  String locId;
  String locX;
  String locY;
  String locInfo;
  String locSpd;
  String locDate;
  factory Location.fromJson(Map<String, dynamic> json) => Location(
        locId: json['loc_id'],
        locX: json['loc_x'],
        locY: json['loc_y'],
        locInfo: json['loc_info'],
        locSpd: json['loc_spd'],
        locDate: json['loc_date'],
      );
  Map<String, dynamic> toJson() => {
        'loc_id': locId,
        'loc_x': locX,
        'loc_y': locY,
        'loc_info': locInfo,
        'loc_spd': locSpd,
        'loc_date': locDate,
      };
}

来自API的JSON数据:

Future<List<Location>> getLocations() async {
    try {
      var url = 'http://10.0.2.2/Track_App/locations.php';
      final resp = await http.get(url);
      final responsebody = jsonDecode(resp.body);
      return responsebody; //this return a list
    } catch (e) {
      return [];
    }
  }

  List<Marker> allMarkers = [];

  loadLocations() async {
    List<Location> locations;
    locations = [];
    locations = await getLocations(); //we store the response in a list
    for (var i = 0; i < locations.length; i++) {
      LatLng latlng;
      latlng = LatLng(
        double.parse(locations[i].locX),
        double.parse(locations[i].locY),
      );
      allMarkers.add(
        Marker(
          markerId: MarkerId(locations[i].locId.toString()),
          position: latlng,
        ),
      );
    }
    setState(() {});
  }
FutureBuilder(
              future: loadLocations(),
              builder: (BuildContext context, AsyncSnapshot snapshot) {
                return GoogleMap(
                  mapType: MapType.normal,
                  initialCameraPosition: _kGooglePlex,
                  markers: snapshot.data,
                );
              },
            ),
[
 {
  loc_id: "1 ",
  loc_x: "15.392567",
  loc_y: "44.278188"
 },
 {
  loc_id: "2 ",
  loc_x: "15.391717",
  loc_y: "44.278019"
 }
]
class Location {
  Location({
    this.locId,
    this.locX,
    this.locY,
    this.locInfo,
    this.locSpd,
    this.locDate,
  });
  String locId;
  String locX;
  String locY;
  String locInfo;
  String locSpd;
  String locDate;
  factory Location.fromJson(Map<String, dynamic> json) => Location(
        locId: json['loc_id'],
        locX: json['loc_x'],
        locY: json['loc_y'],
        locInfo: json['loc_info'],
        locSpd: json['loc_spd'],
        locDate: json['loc_date'],
      );
  Map<String, dynamic> toJson() => {
        'loc_id': locId,
        'loc_x': locX,
        'loc_y': locY,
        'loc_info': locInfo,
        'loc_spd': locSpd,
        'loc_date': locDate,
      };
}

我的型号:

Future<List<Location>> getLocations() async {
    try {
      var url = 'http://10.0.2.2/Track_App/locations.php';
      final resp = await http.get(url);
      final responsebody = jsonDecode(resp.body);
      return responsebody; //this return a list
    } catch (e) {
      return [];
    }
  }

  List<Marker> allMarkers = [];

  loadLocations() async {
    List<Location> locations;
    locations = [];
    locations = await getLocations(); //we store the response in a list
    for (var i = 0; i < locations.length; i++) {
      LatLng latlng;
      latlng = LatLng(
        double.parse(locations[i].locX),
        double.parse(locations[i].locY),
      );
      allMarkers.add(
        Marker(
          markerId: MarkerId(locations[i].locId.toString()),
          position: latlng,
        ),
      );
    }
    setState(() {});
  }
FutureBuilder(
              future: loadLocations(),
              builder: (BuildContext context, AsyncSnapshot snapshot) {
                return GoogleMap(
                  mapType: MapType.normal,
                  initialCameraPosition: _kGooglePlex,
                  markers: snapshot.data,
                );
              },
            ),
[
 {
  loc_id: "1 ",
  loc_x: "15.392567",
  loc_y: "44.278188"
 },
 {
  loc_id: "2 ",
  loc_x: "15.391717",
  loc_y: "44.278019"
 }
]
class Location {
  Location({
    this.locId,
    this.locX,
    this.locY,
    this.locInfo,
    this.locSpd,
    this.locDate,
  });
  String locId;
  String locX;
  String locY;
  String locInfo;
  String locSpd;
  String locDate;
  factory Location.fromJson(Map<String, dynamic> json) => Location(
        locId: json['loc_id'],
        locX: json['loc_x'],
        locY: json['loc_y'],
        locInfo: json['loc_info'],
        locSpd: json['loc_spd'],
        locDate: json['loc_date'],
      );
  Map<String, dynamic> toJson() => {
        'loc_id': locId,
        'loc_x': locX,
        'loc_y': locY,
        'loc_info': locInfo,
        'loc_spd': locSpd,
        'loc_date': locDate,
      };
}

类位置{
位置({
这是locId,
这个.locX,
这个,洛西,
这是locInfo,
这是我的,
这个日期,
});
字符串locId;
字符串locX;
弦罗西;
字符串locInfo;
字符串locSpd;
字符串locDate;
工厂位置。fromJson(映射json)=>位置(
locId:json['loc_id'],
locX:json['loc_x'],
locY:json['loc_y'],
locInfo:json['loc_info'],
locSpd:json['loc_spd'],
locDate:json['loc_date'],
);
映射到JSON()=>{
“loc_id”:locId,
“loc_x”:locX,
“loc_y”:locY,
“loc_info”:locInfo,
“loc_spd”:locSpd,
“loc_日期”:locDate,
};
}
你的构建函数就是这样

child: GoogleMap(
    onMapCreated: _onMapCreated,
    initialCameraPosition: const CameraPosition(
        target: LatLng(-33.852, 151.211),
        zoom: 11.0,
    ),
    markers: Set<Marker>.of(markers.values),
),
child:GoogleMap(
onMapCreated:_onMapCreated,
initialCameraPosition:常量CameraPosition(
目标:LatLng(-33.852151.211),
缩放:11.0,
),
标记:一组(标记值),
),
你的构建函数就是这样

child: GoogleMap(
    onMapCreated: _onMapCreated,
    initialCameraPosition: const CameraPosition(
        target: LatLng(-33.852, 151.211),
        zoom: 11.0,
    ),
    markers: Set<Marker>.of(markers.values),
),
child:GoogleMap(
onMapCreated:_onMapCreated,
initialCameraPosition:常量CameraPosition(
目标:LatLng(-33.852151.211),
缩放:11.0,
),
标记:一组(标记值),
),