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
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez obtenir les librairies installées, django a quelques bons outils pour faire face à la géométrie des objets, et ces objets ont une
geojson
attribut, vous donnant accès à la GeoJSON représentation de l'objet:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/
GeometryCollection peut également accepter une liste d'objets de géométrie:
juste un dump de votre polygones dans une liste et de le nourrir à GeometryCollection.
J'ai essayé de nourrir les GeometryCollection avec une liste de Polygones, mais il ne fonctionne pas. Il fonctionne si je crée le GeometryCollection avec le premier polygone, puis ajouter le reste d'entre eux, mais semble laid. Je suis de l'acceptation de votre réponse, mais s'il vous plaît fournir un exemple de la nourrir avec une liste si vous le pouvez
voir la mise à jour, il illustre la création d'un GeometryCollection() à l'aide de la liste,
polys
.Le lien est cassé
OriginalL'auteur monkut
Il est le python-bibliothèque geojson (https://github.com/frewsxcv/python-geojson), ce qui semble rendre cette tâche beaucoup plus facile. Exemple à partir de la page de la bibliothèque:
OriginalL'auteur crisscross
point
, c'est assez similaire à la construction d'unpolygon
objet.json.décharges
pour convertir un objet python à la chaîneQuelque chose comme:
OriginalL'auteur gongzhitaao