#flutter #dart
#flutter #dart
Вопрос:
У меня есть JSON, подобный этому, поступающий с моего сервера:
{
"coordinates": [
[
[
-122.41251225499991,
37.78047851100007
],
[
-122.42194124699989,
37.77303605000009
],
...trimmed...
[
-122.41251225499991,
37.78047851100007
]
]
],
"crs": {
"properties": {
"name": "EPSG:4326"
},
"type": "name"
},
"type": "Polygon"
}
Я хочу проанализировать это на своем сервере, но я не уверен, как это сделать. Я нашел две библиотеки Dart, которые работают с GeoJSON:
geojson https://pub.dev/packages/geojson geojson_vi https://pub.dev/packages/geojson_vi
Оба из них имеют только синтаксический анализ из строковых функций, но у меня есть карта. Каков наилучший способ проанализировать что-то подобное в Dart / Flutter?
Ответ №1:
Это значит?
class GetJsonData{
GetJsonData({
this.coordinates,
this.crs,
this.type,
});
List<List<List<double>>> coordinates;
Crs crs;
String type;
factory GetVehicleInfo.fromJson(Map<String, dynamic> json) => GetVehicleInfo(
coordinates: List<List<List<double>>>.from(json["coordinates"].map((x) => List<List<double>>.from(x.map((x) => List<double>.from(x.map((x) => x.toDouble())))))),
crs: Crs.fromJson(json["crs"]),
type: json["type"],
);
Map<String, dynamic> toJson() => {
"coordinates": List<dynamic>.from(coordinates.map((x) => List<dynamic>.from(x.map((x) => List<dynamic>.from(x.map((x) => x)))))),
"crs": crs.toJson(),
"type": type,
};
}
class Crs {
Crs({
this.properties,
this.type,
});
Properties properties;
String type;
factory Crs.fromJson(Map<String, dynamic> json) => Crs(
properties: Properties.fromJson(json["properties"]),
type: json["type"],
);
Map<String, dynamic> toJson() => {
"properties": properties.toJson(),
"type": type,
};
}
class Properties {
Properties({
this.name,
});
String name;
factory Properties.fromJson(Map<String, dynamic> json) => Properties(
name: json["name"],
);
Map<String, dynamic> toJson() => {
"name": name,
};
}
Ответ №2:
Вы можете преобразовать карту в строку и использовать пакет geojson для анализа данных GeoJSON.