Building a GeoJSON with Python
Question: I want to generate dinamically a geoJSON with a variable number of polygons.
Example for 2 polygons:

    
    
    {
                  "type": "FeatureCollection", 
                  "features": [
                    {"geometry": {
                        "type": "GeometryCollection", 
                        "geometries": [
                            {
                                "type": "Polygon", 
                                "coordinates": 
                                    [[11.0878902207, 45.1602390564],
                                     [0.8251953125, 41.0986328125], 
                                     [7.63671875, 48.96484375], 
                                     [15.01953125, 48.1298828125]]
                            }, 
                            {
                                "type": "Polygon", 
                                "coordinates": 
                                    [[11.0878902207, 45.1602390564], 
                                     [14.931640625, 40.9228515625], 
                                     [11.0878902207, 45.1602390564]]
                            }
                        ]
                    }, 
                    "type": "Feature", 
                    "properties": {}}
                  ]
    }
    

I have a function which gives me the list of coordinates for each polygon, so
I can create a list of polygons, so I am able to build the geoJSON iterating
it with a for loop.

The problem is that I don't see how to do it easily (I thought for example in
returning the list as a string, but building the geoJSON as a string looks
like a bad idea).

I have been suggested this very pythonic idea:

    
    
    geo_json = [ {"type": "Feature",,
                        "geometry": {
                            "type": "Point",
                            "coordinates": [lon,lat] }}
                        for lon,lat in zip(ListOfLong,ListOfLat) ] 
    

But since I am adding a variable number of Polygons instead of a list of
points, this solutions does not seem suitable. Or at least I don't know how to
adapt it.

I could build it as a string, but I'd like to do it in a smarter way. Any
idea?


Answer: There is the python-geojson library (<https://github.com/frewsxcv/python-
geojson>), which seems to make this task also much easier. Example from the
library page:

    
    
    >>> from geojson import Polygon
    
    >>> Polygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38,   57.322)]])  
    {"coordinates": [[[2.3..., 57.32...], [23.19..., -20.2...], [-120.4..., 19.1...]]], "type": "Polygon"}
    

