La construction d'un GeoJSON avec Python

Je veux générer dynamiquement un geoJSON avec un nombre variable de polygones. Exemple pour 2 polygones:

{
    "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": {}}
    ]
}

J'ai une fonction qui me donne la liste des coordonnées de chaque polygone, donc je peux créer une liste de polygones, donc je suis en mesure de construire le geoJSON itération avec une boucle for.

Le problème est que je ne vois pas comment le faire facilement (je pense par exemple au retour de la liste comme une chaîne de caractères, mais la construction de la geoJSON comme une chaîne se présente comme une mauvaise idée).

J'ai été suggéré cette très pythonic idée:

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

Mais depuis que je suis l'ajout d'une variable de nombre de Polygones au lieu d'une liste de points, ces solutions ne semble pas adapté. Ou au moins, je ne sais pas comment l'adapter.

J'ai pu construire comme une chaîne de caractères, mais j'aimerais le faire de façon plus intelligente. Une idée?

OriginalL'auteur Roman Rdgz | 2013-06-04