Skip to content

Instantly share code, notes, and snippets.

@ThomasAunvik
Last active January 21, 2025 13:31
Show Gist options
  • Save ThomasAunvik/86801c76d5eb2ef387ec01cc73521a03 to your computer and use it in GitHub Desktop.
Save ThomasAunvik/86801c76d5eb2ef387ec01cc73521a03 to your computer and use it in GitHub Desktop.
Why not work
import 'dart:convert';
void main() {
final data = {
"data": {
"statistics": {
"activitiesMap": [
{
"startTime": "2025-01-02T07:11:09+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 78
},
{
"startTime": "2025-01-03T07:02:32+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 162
},
{
"startTime": "2025-01-06T07:07:33+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 51
},
{
"startTime": "2025-01-06T11:27:45+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 180
},
{
"startTime": "2025-01-07T09:51:43+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 261
},
{
"startTime": "2025-01-08T11:32:19+00:00",
"location": {"lat": 0, "lon": 9.819928169250488},
"totalBales": 180
},
{
"startTime": "2025-01-09T07:33:01+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 401
},
{
"startTime": "2025-01-13T09:30:06+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 333
},
{
"startTime": "2025-01-14T07:21:42+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 349
},
{
"startTime": "2025-01-15T10:09:07+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 29
},
{
"startTime": "2025-01-16T11:49:55+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 64
},
{
"startTime": "2025-01-17T11:15:11+00:00",
"location": {"lat": 0, "lon": 0},
"totalBales": 1
}
]
}
}
};
final activities =
data["data"]?["statistics"]?["activitiesMap"] as List? ?? [];
final geoActivities = activities
.map(
(activity) => (
{
"type": "Feature",
"properties": {
"id": activity?["activityId"]?.toString() ?? "",
"time": DateTime.tryParse(activity?["startTime"] ?? "")
?.millisecondsSinceEpoch,
"mag": activity?["totalBales"],
},
"geometry": {
"type": "Point",
"coordinates": [
activity?["location"]?["lat"] ?? 0,
activity?["location"]?["lon"] ?? 0,
],
},
},
),
)
.toList();
final geoJson = {
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {"name": "urn:ogc:def:crs:OGC:1.3:CRS84"},
},
"features": geoActivities,
};
print(geoJson);
final geoString = json.encode(geoJson);
print(geoString);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment