From 17983027c1aeafcadfa71ef25c962bb71f226853 Mon Sep 17 00:00:00 2001 From: agrignard Date: Wed, 10 Apr 2019 17:03:36 -0400 Subject: [PATCH] Update GAMA BAckEnd Examples to send bith Grid and Agent data --- examples/GAMA/cityIO_Gama/.project | 7 +++ .../GAMA/cityIO_Gama/headless/cityIO_Gama.xml | 2 +- .../includes/cityIO_Gama_Agent.json | 1 + examples/GAMA/cityIO_Gama/models/cityIO.gaml | 63 ++++++++++++++----- .../GAMA/cityIO_Gama/results/people.geojson | 1 - 5 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 examples/GAMA/cityIO_Gama/includes/cityIO_Gama_Agent.json delete mode 100644 examples/GAMA/cityIO_Gama/results/people.geojson diff --git a/examples/GAMA/cityIO_Gama/.project b/examples/GAMA/cityIO_Gama/.project index 6db98ab..2fe4b90 100644 --- a/examples/GAMA/cityIO_Gama/.project +++ b/examples/GAMA/cityIO_Gama/.project @@ -15,4 +15,11 @@ org.eclipse.xtext.ui.shared.xtextNature msi.gama.application.gamaNature + + + external/grasbrook + 1 + CACHE_LOC/cityio.media.mit.edu+_++_+api+_+table+_+grasbrook + + diff --git a/examples/GAMA/cityIO_Gama/headless/cityIO_Gama.xml b/examples/GAMA/cityIO_Gama/headless/cityIO_Gama.xml index 36ac158..eaf923e 100644 --- a/examples/GAMA/cityIO_Gama/headless/cityIO_Gama.xml +++ b/examples/GAMA/cityIO_Gama/headless/cityIO_Gama.xml @@ -1,6 +1,6 @@ - + diff --git a/examples/GAMA/cityIO_Gama/includes/cityIO_Gama_Agent.json b/examples/GAMA/cityIO_Gama/includes/cityIO_Gama_Agent.json new file mode 100644 index 0000000..762b402 --- /dev/null +++ b/examples/GAMA/cityIO_Gama/includes/cityIO_Gama_Agent.json @@ -0,0 +1 @@ +{"grid":[[1,0,270],[0,7,270],[0,8,90],[4,7,0],[2,6,270],[1,2,0],[4,4,180],[6,3,270],[6,2,90],[0,2,90],[3,5,180],[6,4,90],[1,7,90],[5,7,0],[3,5,0],[5,6,180],[1,7,0],[5,0,180],[6,2,270],[1,7,90],[4,5,180],[2,8,90],[3,6,90],[5,7,180],[1,4,180],[1,3,0],[5,9,0],[5,7,180],[4,0,180],[0,5,90],[0,8,180],[2,9,180],[1,7,90],[3,4,270],[4,0,90],[1,5,0],[0,1,270],[4,6,0],[3,3,90],[2,1,270],[0,6,180],[0,2,90],[4,3,270],[6,4,180],[0,7,270],[2,2,0],[6,1,0],[6,0,270],[1,1,180],[4,6,270],[2,4,90],[1,1,0],[6,9,270],[4,9,90],[4,5,180],[6,0,270],[4,6,270],[1,2,270],[0,7,270],[3,4,180],[6,3,0],[1,3,180],[2,5,180],[0,6,270],[3,9,180],[0,3,90],[5,5,0],[3,9,0],[1,8,90],[6,6,90],[6,6,270],[5,3,90],[5,9,270],[6,5,270],[1,3,90],[4,2,270],[6,2,0],[6,1,180],[5,4,90],[5,9,180],[1,1,270],[4,9,90],[0,0,270],[4,9,90],[1,5,270],[1,0,0],[4,7,0],[4,2,0],[2,0,90],[3,2,270],[1,0,270],[4,4,270],[5,1,180],[0,3,180],[4,2,270],[5,3,270],[4,1,180],[2,9,180],[1,4,90],[1,3,0],[1,3,90],[6,4,270],[3,4,0],[4,1,0],[6,4,270],[0,2,0],[4,7,90],[3,4,0],[1,0,180],[4,3,270],[2,5,180],[6,5,0],[6,0,90],[3,5,90],[5,7,0],[4,3,90],[0,2,180],[2,2,180],[3,2,90],[0,9,180],[4,8,270],[1,4,90],[5,2,0],[5,9,90],[4,6,270],[5,5,90],[2,5,90],[3,0,270],[2,7,0],[3,6,180],[5,0,180],[1,5,0],[5,1,180],[6,5,0],[4,0,270],[6,4,270],[6,6,270],[5,7,90],[4,0,0],[3,9,270],[2,0,0],[1,8,90],[4,0,180],[3,1,90],[6,6,90],[6,2,90],[0,1,270],[2,5,270],[2,3,90],[2,7,0],[3,9,270],[4,3,180],[1,0,180],[3,9,0],[0,2,270],[4,9,90],[0,4,90],[2,1,270],[3,0,0],[3,1,180],[2,8,90],[2,1,180],[3,5,0],[4,4,0],[4,2,0],[5,7,0],[6,3,90],[1,9,0],[2,4,90],[6,8,90],[1,8,90],[5,5,90],[6,3,180],[5,3,270],[4,9,180],[1,1,0],[3,6,90],[1,8,270],[4,2,270],[4,2,180],[0,7,180],[0,8,0],[0,5,270],[1,9,270],[4,8,180],[5,8,90],[2,3,90],[3,4,270],[1,6,0],[3,2,90],[3,5,90],[2,4,0],[5,2,90],[1,6,0],[1,2,270],[6,7,90],[5,6,270],[3,7,270],[2,3,0],[4,1,0],[6,7,180],[6,5,0],[5,6,270],[2,7,0],[1,4,90],[3,5,90],[3,4,270],[2,0,180],[5,4,180],[3,5,0],[3,1,270],[6,3,270],[5,1,90],[2,5,0],[6,8,90],[1,0,90],[6,5,270],[2,8,180],[4,8,90],[3,7,270],[4,2,0],[5,8,270],[2,0,180],[2,5,270],[6,6,0],[1,6,270],[4,6,270],[3,9,270],[6,0,270],[4,9,90],[0,2,90],[4,5,0],[4,6,270],[6,9,270],[4,6,270],[5,6,180],[6,0,90],[4,2,0],[1,9,90],[1,2,0],[3,3,270],[3,6,0],[6,5,270],[5,2,90],[5,2,180],[3,2,180],[1,8,180],[3,3,0],[4,1,180],[2,0,180],[4,9,270],[2,2,180],[5,3,270],[4,5,270],[1,9,270],[3,3,90],[5,0,270],[3,7,180],[5,3,180],[5,9,90],[6,6,0],[4,0,0],[0,7,90],[3,5,180],[1,1,90],[5,5,0],[2,1,90],[2,0,180],[2,1,180],[0,9,90],[2,1,90],[5,4,0],[2,1,90],[6,5,270],[1,4,180],[5,2,0],[3,4,90],[4,6,90],[3,7,180],[4,7,270],[5,7,0],[0,8,90],[4,6,270],[1,4,180],[4,8,180],[3,5,90],[5,8,180],[0,2,180],[3,3,180],[2,4,270],[4,8,270],[1,3,90],[3,3,270],[3,8,270],[6,0,90],[2,4,270],[4,3,0],[3,2,90],[1,9,90],[1,1,0],[4,1,0],[3,4,180],[1,0,0],[4,1,180],[2,3,0],[0,2,270],[4,2,180],[0,2,180],[6,6,90],[4,8,270],[6,0,180],[6,0,180],[3,2,270],[4,7,0],[4,6,90],[3,5,90],[5,6,180],[3,0,90],[2,5,90],[5,0,270],[4,8,90],[3,2,270],[0,0,0],[2,6,180],[1,3,0],[0,0,0],[3,2,90],[6,7,90],[0,7,180],[0,1,180],[5,7,0],[0,2,0],[1,3,0],[0,7,0],[0,5,180],[3,1,270],[6,9,0],[4,2,0],[3,8,180],[0,7,180],[3,3,270],[5,7,180],[0,5,270],[6,4,180],[4,1,180],[5,8,90],[2,3,270],[4,0,270],[0,8,270],[5,4,90],[0,1,90],[6,4,90],[3,5,0],[2,4,0],[5,1,180],[4,8,180],[4,3,90],[4,5,0],[5,6,0],[1,7,270],[4,5,180],[1,7,270],[0,4,0],[0,4,270],[3,3,270],[1,9,90],[4,8,180],[3,4,90],[4,6,180],[4,9,0],[1,9,0],[4,4,180],[1,0,180],[6,7,90],[4,6,0],[2,2,0],[5,6,270],[4,4,180],[4,8,90],[6,1,0],[5,8,180],[4,2,270],[0,1,270],[0,4,0],[6,3,0],[4,2,270],[2,1,90],[5,8,0],[0,9,0],[4,6,270],[4,8,270],[6,9,180],[1,8,180],[4,7,0],[0,3,270],[3,3,0],[0,6,180],[6,3,90],[3,2,0],[4,5,90]],"meta":{"apiv":2,"id":"hnkyCam","timestamp":-290419029},"objects":{"points":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"coordinates":[100.51134639265322,2.7791355017715657E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":0},{"type":"Feature","geometry":{"coordinates":[100.51157514652954,4.8014752316950977E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":1},{"type":"Feature","geometry":{"coordinates":[100.5113887559565,9.688871223804664E-5,0.0],"type":"Point"},"properties":{"property_1":2},"id":2},{"type":"Feature","geometry":{"coordinates":[100.5115218987927,6.001914043000524E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":3},{"type":"Feature","geometry":{"coordinates":[100.51173674255995,8.033106972697403E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":4},{"type":"Feature","geometry":{"coordinates":[100.51187282369874,3.518491001998085E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":5},{"type":"Feature","geometry":{"coordinates":[100.5119730780425,1.891047244458317E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":6},{"type":"Feature","geometry":{"coordinates":[100.51141292318675,8.794659746523952E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":7},{"type":"Feature","geometry":{"coordinates":[100.51162315143507,4.7290712707538483E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":8},{"type":"Feature","geometry":{"coordinates":[100.51186226058564,6.902409733729597E-4,0.0],"type":"Point"},"properties":{"property_1":2},"id":9}]}},"header":{"owner":{"name":"Arnaud Grignard","institute":"Gama Platform","title":"Research Assistant"},"mapping":{"type":{"0":"RL","1":"RM","2":"RS","3":"OL","4":"OM","5":"OS","6":"ROAD"}},"name":"virtual_table","block":["type","height","rotation"],"spatial":{"physical_longitude":105.84,"nrows":20,"rotation":0,"latitude":21.02,"physical_latitude":21.02,"ncols":20,"cellsize":10,"longitude":105.84}},"id":"","error":"","timestamp":-290419008} \ No newline at end of file diff --git a/examples/GAMA/cityIO_Gama/models/cityIO.gaml b/examples/GAMA/cityIO_Gama/models/cityIO.gaml index 8790913..8a60e70 100644 --- a/examples/GAMA/cityIO_Gama/models/cityIO.gaml +++ b/examples/GAMA/cityIO_Gama/models/cityIO.gaml @@ -1,4 +1,4 @@ -/** + /** * Name: cityIO API for GAMA * Author: Arnaud Grignard * Description: Gives the basic read and write feature for cityIO @@ -19,9 +19,15 @@ global { map buildingColors <-[-2::#red, -1::#orange,0::rgb(189,183,107), 1::rgb(189,183,107), 2::rgb(189,183,107),3::rgb(230,230,230), 4::rgb(230,230,230), 5::rgb(230,230,230),6::rgb(40,40,40),7::#cyan,8::#green,9::#gray]; map header; map spatial; - int refresh <- 100 min: 1 max:1000 parameter: "Refresh Grid rate (cycle):" category: "Grid"; - bool pushToCityIO <- false parameter: "Push to cityIO every refresh cycles" category: "Grid"; - bool pushToLocalFile <- false parameter: "Push to a local every refresh cycles" category: "Grid"; + bool updateGrid <- false parameter: "Update Grid:" category: "Grid"; + int gridRrefresh <- 100 min: 1 max:1000 parameter: "Refresh Grid rate (cycle):" category: "Grid"; + bool pushGridToCityIO <- false parameter: "Push Grid to cityIO every refresh cycles" category: "Grid"; + bool pushGridToLocalFile <- false parameter: "Push Grid to a local every refresh cycles" category: "Grid"; + + int agentRrefresh <- 100 min: 1 max:1000 parameter: "Refresh Agent rate (cycle):" category: "Agent"; + bool pushAgentToCityIO <- false parameter: "Push Agent to cityIO every refresh cycles" category: "Agent"; + bool pushAgentToLocalFile <- false parameter: "Push Agent to a local every refresh cycles" category: "Agent"; + int nbCols; int nbRows; int cellSize; @@ -64,30 +70,59 @@ global { map(outputMatrixData["header"]["spatial"])["physical_longitude"]<-105.84; map(outputMatrixData["header"]["spatial"])["physical_latitude"]<-21.02; - if(pushToCityIO){ + if(pushGridToCityIO){ try{ save(json_file("https://cityio.media.mit.edu/api/table/update/cityIO_Gama", outputMatrixData)); }catch{ write #current_error + " Impossible to write to cityIO - Connection to Internet lost or cityIO is offline"; } } - if(pushToLocalFile){ + if(pushGridToLocalFile){ save(json_file("./../includes/cityIO_Gama.json", outputMatrixData)); } - + } + + action pushAgent(map _matrixData){ + outputMatrixData <- _matrixData; + map(outputMatrixData["header"]["owner"])["institute"]<-"Gama Platform"; + map(outputMatrixData["header"]["owner"])["institute"]<-"Gama Platform"; + map(outputMatrixData["header"]["owner"])["name"]<-"Arnaud Grignard"; + map(outputMatrixData["header"]["spatial"])["longitude"]<-105.84; + map(outputMatrixData["header"]["spatial"])["latitude"]<-21.02; + map(outputMatrixData["header"]["spatial"])["physical_longitude"]<-105.84; + map(outputMatrixData["header"]["spatial"])["physical_latitude"]<-21.02; + list projected_points <- people collect ([each.location]); + list features<-list_with(length(projected_points), map([])); + loop i from: 0 to:length(projected_points)-1{ + list unprojected_point <-point(projected_points[i][0] CRS_transform "EPSG:4326"); + map point_geometry<-['coordinates'::unprojected_point, 'type'::'Point']; + map point_properties<-['property_1'::2]; + map feature<-["type":: "Feature",'geometry'::point_geometry, 'properties'::point_properties, 'id'::i]; + features[i]<-feature; + } + map output_geo<-["type":: "FeatureCollection",'features'::features]; + outputMatrixData["objects"]<-["points"::output_geo]; + if(pushAgentToCityIO){ + try{ + save(json_file("https://cityio.media.mit.edu/api/table/update/cityIO_Gama_Agent", outputMatrixData)); + }catch{ + write #current_error + " Impossible to write to cityIO - Connection to Internet lost or cityIO is offline"; + } + } + if(pushAgentToLocalFile){ + save(json_file("./../includes/cityIO_Gama_Agent.json", outputMatrixData)); + } } - reflex updateGrid when: ((cycle mod refresh) = 0){ + reflex updateGrid when: ((cycle mod gridRrefresh) = 0 and updateGrid){ do initGrid; - if(pushToCityIO){ + if(pushGridToCityIO){ do pushGrid(inputMatrixData); } } - reflex updateGeoJson when: ((cycle mod refresh) = 0){ - save people to:"../results/people.geojson" type:"json" with: [attribute1:"attribute1",attribute2:"attribute2"]; - outputSimulationData <- json_file("../results/people.geojson").contents; - save(json_file("https://cityio.media.mit.edu/api/table/update/cityIO_Gama_Simulation", outputSimulationData)); + reflex updateAgent when: ((cycle mod agentRrefresh) = 0){ + do pushAgent(inputMatrixData); } } @@ -113,7 +148,7 @@ species people skills:[moving]{ } -experiment Display type: gui { +experiment Display type: gui autorun:true{ action _init_ { map data; try { diff --git a/examples/GAMA/cityIO_Gama/results/people.geojson b/examples/GAMA/cityIO_Gama/results/people.geojson deleted file mode 100644 index fa33989..0000000 --- a/examples/GAMA/cityIO_Gama/results/people.geojson +++ /dev/null @@ -1 +0,0 @@ -{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[41.2044,31.1303,0.0],[41.1852,30.9352,0.0],[41.1283,30.7476,0.0],[41.0359,30.5748,0.0],[40.9115,30.4232,0.0],[40.76,30.2989,0.0],[40.5871,30.2064,0.0],[40.3995,30.1495,0.0],[40.2044,30.1303,0.0],[40.0093,30.1495,0.0],[39.8217,30.2064,0.0],[39.6488,30.2989,0.0],[39.4973,30.4232,0.0],[39.3729,30.5748,0.0],[39.2805,30.7476,0.0],[39.2236,30.9352,0.0],[39.2044,31.1303,0.0],[39.2236,31.3254,0.0],[39.2805,31.513,0.0],[39.3729,31.6859,0.0],[39.4973,31.8374,0.0],[39.6488,31.9618,0.0],[39.8217,32.0542,0.0],[40.0093,32.1111,0.0],[40.2044,32.1303,0.0],[40.3995,32.1111,0.0],[40.5871,32.0542,0.0],[40.76,31.9618,0.0],[40.9115,31.8374,0.0],[41.0359,31.6859,0.0],[41.1283,31.513,0.0],[41.1852,31.3254,0.0],[41.2044,31.1303,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"0"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[51.0607,3.5956,0.0],[51.0415,3.4006,0.0],[50.9845,3.213,0.0],[50.8921,3.0401,0.0],[50.7678,2.8885,0.0],[50.6162,2.7642,0.0],[50.4434,2.6718,0.0],[50.2558,2.6149,0.0],[50.0607,2.5956,0.0],[49.8656,2.6149,0.0],[49.678,2.6718,0.0],[49.5051,2.7642,0.0],[49.3536,2.8885,0.0],[49.2292,3.0401,0.0],[49.1368,3.213,0.0],[49.0799,3.4006,0.0],[49.0607,3.5956,0.0],[49.0799,3.7907,0.0],[49.1368,3.9783,0.0],[49.2292,4.1512,0.0],[49.3536,4.3027,0.0],[49.5051,4.4271,0.0],[49.678,4.5195,0.0],[49.8656,4.5764,0.0],[50.0607,4.5956,0.0],[50.2558,4.5764,0.0],[50.4434,4.5195,0.0],[50.6162,4.4271,0.0],[50.7678,4.3027,0.0],[50.8921,4.1512,0.0],[50.9845,3.9783,0.0],[51.0415,3.7907,0.0],[51.0607,3.5956,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"1"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.7743,20.0317,0.0],[29.7551,19.8366,0.0],[29.6982,19.649,0.0],[29.6058,19.4761,0.0],[29.4814,19.3246,0.0],[29.3299,19.2002,0.0],[29.157,19.1078,0.0],[28.9694,19.0509,0.0],[28.7743,19.0317,0.0],[28.5792,19.0509,0.0],[28.3916,19.1078,0.0],[28.2187,19.2002,0.0],[28.0672,19.3246,0.0],[27.9428,19.4761,0.0],[27.8504,19.649,0.0],[27.7935,19.8366,0.0],[27.7743,20.0317,0.0],[27.7935,20.2268,0.0],[27.8504,20.4144,0.0],[27.9428,20.5873,0.0],[28.0672,20.7388,0.0],[28.2187,20.8632,0.0],[28.3916,20.9556,0.0],[28.5792,21.0125,0.0],[28.7743,21.0317,0.0],[28.9694,21.0125,0.0],[29.157,20.9556,0.0],[29.3299,20.8632,0.0],[29.4814,20.7388,0.0],[29.6058,20.5873,0.0],[29.6982,20.4144,0.0],[29.7551,20.2268,0.0],[29.7743,20.0317,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"2"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[60.1502,48.7073,0.0],[60.1309,48.5122,0.0],[60.074,48.3246,0.0],[59.9816,48.1517,0.0],[59.8573,48.0001,0.0],[59.7057,47.8758,0.0],[59.5328,47.7834,0.0],[59.3452,47.7265,0.0],[59.1502,47.7073,0.0],[58.9551,47.7265,0.0],[58.7675,47.7834,0.0],[58.5946,47.8758,0.0],[58.443,48.0001,0.0],[58.3187,48.1517,0.0],[58.2263,48.3246,0.0],[58.1694,48.5122,0.0],[58.1502,48.7073,0.0],[58.1694,48.9023,0.0],[58.2263,49.0899,0.0],[58.3187,49.2628,0.0],[58.443,49.4144,0.0],[58.5946,49.5387,0.0],[58.7675,49.6311,0.0],[58.9551,49.688,0.0],[59.1502,49.7073,0.0],[59.3452,49.688,0.0],[59.5328,49.6311,0.0],[59.7057,49.5387,0.0],[59.8573,49.4144,0.0],[59.9816,49.2628,0.0],[60.074,49.0899,0.0],[60.1309,48.9023,0.0],[60.1502,48.7073,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"3"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.5864,38.6723,0.0],[50.5672,38.4772,0.0],[50.5102,38.2896,0.0],[50.4178,38.1167,0.0],[50.2935,37.9652,0.0],[50.1419,37.8408,0.0],[49.9691,37.7484,0.0],[49.7815,37.6915,0.0],[49.5864,37.6723,0.0],[49.3913,37.6915,0.0],[49.2037,37.7484,0.0],[49.0308,37.8408,0.0],[48.8793,37.9652,0.0],[48.7549,38.1167,0.0],[48.6625,38.2896,0.0],[48.6056,38.4772,0.0],[48.5864,38.6723,0.0],[48.6056,38.8674,0.0],[48.6625,39.0549,0.0],[48.7549,39.2278,0.0],[48.8793,39.3794,0.0],[49.0308,39.5037,0.0],[49.2037,39.5961,0.0],[49.3913,39.653,0.0],[49.5864,39.6723,0.0],[49.7815,39.653,0.0],[49.9691,39.5961,0.0],[50.1419,39.5037,0.0],[50.2935,39.3794,0.0],[50.4178,39.2278,0.0],[50.5102,39.0549,0.0],[50.5672,38.8674,0.0],[50.5864,38.6723,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"4"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.3735,58.2543,0.0],[11.3543,58.0592,0.0],[11.2974,57.8717,0.0],[11.205,57.6988,0.0],[11.0806,57.5472,0.0],[10.9291,57.4229,0.0],[10.7562,57.3305,0.0],[10.5686,57.2736,0.0],[10.3735,57.2543,0.0],[10.1784,57.2736,0.0],[9.9908,57.3305,0.0],[9.8179,57.4229,0.0],[9.6664,57.5472,0.0],[9.542,57.6988,0.0],[9.4496,57.8717,0.0],[9.3927,58.0592,0.0],[9.3735,58.2543,0.0],[9.3927,58.4494,0.0],[9.4496,58.637,0.0],[9.542,58.8099,0.0],[9.6664,58.9614,0.0],[9.8179,59.0858,0.0],[9.9908,59.1782,0.0],[10.1784,59.2351,0.0],[10.3735,59.2543,0.0],[10.5686,59.2351,0.0],[10.7562,59.1782,0.0],[10.9291,59.0858,0.0],[11.0806,58.9614,0.0],[11.205,58.8099,0.0],[11.2974,58.637,0.0],[11.3543,58.4494,0.0],[11.3735,58.2543,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"5"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.681,10.9869,0.0],[22.6618,10.7918,0.0],[22.6049,10.6042,0.0],[22.5124,10.4313,0.0],[22.3881,10.2798,0.0],[22.2365,10.1554,0.0],[22.0637,10.063,0.0],[21.8761,10.0061,0.0],[21.681,9.9869,0.0],[21.4859,10.0061,0.0],[21.2983,10.063,0.0],[21.1254,10.1554,0.0],[20.9739,10.2798,0.0],[20.8495,10.4313,0.0],[20.7571,10.6042,0.0],[20.7002,10.7918,0.0],[20.681,10.9869,0.0],[20.7002,11.182,0.0],[20.7571,11.3696,0.0],[20.8495,11.5424,0.0],[20.9739,11.694,0.0],[21.1254,11.8183,0.0],[21.2983,11.9107,0.0],[21.4859,11.9677,0.0],[21.681,11.9869,0.0],[21.8761,11.9677,0.0],[22.0637,11.9107,0.0],[22.2365,11.8183,0.0],[22.3881,11.694,0.0],[22.5124,11.5424,0.0],[22.6049,11.3696,0.0],[22.6618,11.182,0.0],[22.681,10.9869,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"6"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.9921,56.0259,0.0],[27.9729,55.8308,0.0],[27.916,55.6432,0.0],[27.8236,55.4703,0.0],[27.6992,55.3187,0.0],[27.5477,55.1944,0.0],[27.3748,55.102,0.0],[27.1872,55.0451,0.0],[26.9921,55.0259,0.0],[26.797,55.0451,0.0],[26.6094,55.102,0.0],[26.4365,55.1944,0.0],[26.285,55.3187,0.0],[26.1606,55.4703,0.0],[26.0682,55.6432,0.0],[26.0113,55.8308,0.0],[25.9921,56.0259,0.0],[26.0113,56.2209,0.0],[26.0682,56.4085,0.0],[26.1606,56.5814,0.0],[26.285,56.733,0.0],[26.4365,56.8573,0.0],[26.6094,56.9497,0.0],[26.797,57.0066,0.0],[26.9921,57.0259,0.0],[27.1872,57.0066,0.0],[27.3748,56.9497,0.0],[27.5477,56.8573,0.0],[27.6992,56.733,0.0],[27.8236,56.5814,0.0],[27.916,56.4085,0.0],[27.9729,56.2209,0.0],[27.9921,56.0259,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"7"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.5209,48.0785,0.0],[9.5017,47.8834,0.0],[9.4448,47.6958,0.0],[9.3524,47.5229,0.0],[9.228,47.3714,0.0],[9.0765,47.247,0.0],[8.9036,47.1546,0.0],[8.716,47.0977,0.0],[8.5209,47.0785,0.0],[8.3258,47.0977,0.0],[8.1382,47.1546,0.0],[7.9653,47.247,0.0],[7.8138,47.3714,0.0],[7.6894,47.5229,0.0],[7.597,47.6958,0.0],[7.5401,47.8834,0.0],[7.5209,48.0785,0.0],[7.5401,48.2736,0.0],[7.597,48.4611,0.0],[7.6894,48.634,0.0],[7.8138,48.7856,0.0],[7.9653,48.9099,0.0],[8.1382,49.0023,0.0],[8.3258,49.0592,0.0],[8.5209,49.0785,0.0],[8.716,49.0592,0.0],[8.9036,49.0023,0.0],[9.0765,48.9099,0.0],[9.228,48.7856,0.0],[9.3524,48.634,0.0],[9.4448,48.4611,0.0],[9.5017,48.2736,0.0],[9.5209,48.0785,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"8"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[84.8997,99.828,0.0],[84.8805,99.6329,0.0],[84.8236,99.4453,0.0],[84.7312,99.2724,0.0],[84.6069,99.1208,0.0],[84.4553,98.9965,0.0],[84.2824,98.9041,0.0],[84.0948,98.8472,0.0],[83.8997,98.828,0.0],[83.7047,98.8472,0.0],[83.5171,98.9041,0.0],[83.3442,98.9965,0.0],[83.1926,99.1208,0.0],[83.0683,99.2724,0.0],[82.9759,99.4453,0.0],[82.919,99.6329,0.0],[82.8997,99.828,0.0],[82.919,100.023,0.0],[82.9759,100.2106,0.0],[83.0683,100.3835,0.0],[83.1926,100.5351,0.0],[83.3442,100.6594,0.0],[83.5171,100.7518,0.0],[83.7047,100.8087,0.0],[83.8997,100.828,0.0],[84.0948,100.8087,0.0],[84.2824,100.7518,0.0],[84.4553,100.6594,0.0],[84.6069,100.5351,0.0],[84.7312,100.3835,0.0],[84.8236,100.2106,0.0],[84.8805,100.023,0.0],[84.8997,99.828,0.0]]]},"properties":{"attribute1":0,"attribute2":0},"id":"9"}]} \ No newline at end of file