Suite

Obtenir GeoJSON correctement formaté pour Leaflet?

Obtenir GeoJSON correctement formaté pour Leaflet?


J'essaie d'obtenir des données sur une carte de dépliants que j'ai configurée. Je suis ce tutoriel : https://www.youtube.com/watch?v=fDfkjx-VhLI

J'ai tous les scripts html, css et js opérationnels et j'ai entré mon fichier geojson .js de la même manière que dans la vidéo. Il ne s'affiche pas, et je pense que c'est parce que mon geojson ressemble à ceci :

var data = {"features": [{"geometry": {"coordinates": [51.05632117022859, -114.0952643473764], "type": "Point"}, "properties": {"address": "429 14 ST, CALGARY , AB", "plainte": "Rue arrière. Égout pluvial inondé. Et parking et immeuble d'appartements sont inondés", "id": "15-00468661", "status": "OUVERT", "ward": "7" }, "type": "Feature"}, {"geometry": {"coordinates": [51.03665002997416, -114.0447471198658], "type": "Point"}, "properties": {"address": "607 ALBERTA AV , CALGARY, AB", "plainte": "Développeur classant aujourd'hui les racines d'arbres creusées et endommagées en arbre protégé par la ville.", "id": "15-00468646", "status": "OUVERT", "ward": "9"}, "type": "Feature"}, {"geometry": {"coordinates": [51.05389046021835, -114.0834087320735], "type": "Point"}, "properties": {"address": " 1022 1 AV, CALGARY, AB", "plainte": "Une branche d'arbre détachée a été renversée par la tempête, assise de manière précaire dans un grand arbre à environ 3 étages au-dessus du trottoir. Potentiellement dangereux si elle est délogée.", "id": "15-00468618" , "statut": "OUVERT", "wa rd": "7"}, "type": "Feature"}, {"geometry": {"coordinates": [51.096251, -113.981983], "type": "Point"}, "properties": {"address ": "4881 METIS TR, CALGARY, AB", "plainte": "Niches au bas de la rampe de Mcknight à Metis Tr en direction sud.", "id": "15-00468588", "status": "OUVERT", " ward": "3"}, "type": "Feature"}, {"geometry": {"coordinates": [51.05480794333951, -114.0375342407394], "type": "Point"}, "properties": {"address " : "404 10 ST, CALGARY, AB", "plainte": "Branches d'arbres de la ville dans la cour avant.", "id": "15-00468584", "status": "OUVERT", "ward": " 9"}, "type": "Feature"}, {"geometry": {"coordinates": [51.068128, -113.974563], "type": "Point"}, "properties": {"address": "207 RUNDLERIDGE RD, CALGARY, AB", "plainte": "La rue est inondée à l'est de nous et le couvercle du trou d'homme est presque éteint avec de l'eau qui jaillit.", "id": "15-00467971", "status": "FERMÉ" , "ward": "5"}, "type": "Feature"}, {"geometry": {"coordinates": [51.110387, -113.966348], "type": "Point"}, "properties": { "adresse": "5167 64 AV, CALGARY, AB", "plainte": "Route inégale sur 64 ave de martindale Dr à martindale gate en direction ouest 64 ave.", "id": "15-00468582", "status": "OUVERT", "ward": "5"}, "type": "Feature"}, {"geometry": {"coordinates": [50.955734, -114.104648], "type": "Point"}, "properties": {" address": "10819 BRAE RD, CALGARY, AB", "plainte": "Les résidents laissent leur chariot à ordures déborder, ce qui conduit les pies à déchirer les sacs et à répandre des déchets partout dans la ruelle.", "id": "15-00468568 ", "status": "OUVERT", "ward": "11"}, "type": "Feature"}, {"geometry": {"coordinates": [51.110603, -113.946894], "type": " Point"}, "properties": {"address": "64 AV, CALGARY, AB", "complaint": "Route inégale s'il vous plaît corriger cela j'ai signalé cela avant mais rien n'a été fait. Si vous conduisez votre voiture, votre voiture vole simplement deux fois dans les airs et en hiver, quelle que soit la lenteur avec laquelle vous roulez, il y a plus de chances de glisser. Veuillez corriger cette intersection.", "id": "15-00468560", "status": "OPENED", "ward": "4"}, "type": "Feature"}, {"geometry": {" coordonnées": [51.110708, -113.946829], "type": "Point"}, "properties": {"address": "FALCONRIDGE BV, CALGARY, AB", "plaint": " Nids-de-poule lorsque vous vous connectez à falconridge blvd depuis 64 ave NE", "id": "15-00468558", "status": "OUVERT", "ward": "5"}, "type": "Feature"}], "type": "FeatureCollection"} ;

À environ 1:20 dans la vidéo, je vois que les données du créateur de tutoriel ont "type": "FeatureCollection" au début des données, et dans la mienne, c'est à la toute fin. J'ai besoin d'un moyen de traduire automatiquement certaines données en temps réel en geojson, et j'utilise donc un script comme celui-ci :

feature_collection = FeatureCollection(feature_list) #print(feature_collection) print(geojson.dumps(feature_collection)) f = open("F:calgary311data.js", "w") f.write("var data = ") f .write(geojson.dumps(feature_collection, sort_keys=True)) f.write(";") f.close()

Existe-t-il un moyen de spécifier la méthode geojson.dumps() pour mettre le "type": "FeatureCollection" au début plutôt qu'à la fin? Cela aurait-il encore de l'importance ?


GeoJSON est un format JSON, et en cela, l'ordre des attributs n'est pas important.

Ce n'est pas grave si vous avez le"type": "FeatureCollection"d'abord, ou après le"fonctionnalités"déployer.

Les deux fonctionneront avec tous les logiciels qui lisent GeoJSON.

Cependant, veuillez noter que je pense que vous avez un autre problème dans vos données. Je pense que vos valeurs de latitude et de longitude sont inversées. Vous avez des coordonnées comme[51.068128, -113.974563]et GeoJSON a besoin de coordonnées en longitude, ordre de latitude ; Il ne peut pas y avoir de latitude de -113