Pourquoi une partie de la conversion GML -> KML ne fonctionne-t-elle pas sur Google Maps?

11

J'ai un client qui souhaite visualiser l'incidence des cancers et les taux de mortalité par les autorités locales / unitaires à travers la Grande-Bretagne. J'ai utilisé les données de l'Ordnance Survey pour obtenir les limites des autorités au format GML et les ai toutes enregistrées dans un grand fichier GML. J'ai utilisé QGIS pour convertir les données au format KML. J'ai les données dans Fusion Tables maintenant et tout semble super, sauf pour un écart flagrant dans la couverture .

Lorsque je regarde les données KML pour l'autorité locale manquante, elles n'ont pas du tout été importées (c'est-à-dire que la cellule est vide). J'ai essayé de télécharger à nouveau la géométrie (et de télécharger à nouveau et de reconvertir) et Fusion Tables la rejette définitivement en tant que KML. J'ai lu quelque part que Fusion Tables peut quelque peu perturber votre géométrie, j'ai donc téléchargé le fichier KML et pointé Google Maps directement dessus et cela n'a pas fonctionné non plus (je ne sais pas à quel point un test est bon).

Je ne sais pas si j'ai créé à l'origine un fichier GML valide (je ne connais pas la norme), mais ils semblaient importer correctement dans QGIS et le résultat final a fière allure en dehors de cet endroit. La zone est visible dans QGIS lorsque je charge le fichier GML, donc je ne sais pas si QGIS produit un KML non valide, ou si Google Maps / Fusion Tables ont des limitations?


J'ai téléchargé les données OS Open pointées par @nhopton , chargé la couche appropriée dans QGIS ( Layer -> Ajouter une couche vectorielle ), enregistrée en KML ( Layer -> Enregistrer sous ) et téléchargée sur Fusion Tables. (Notez que je n'ai rien fait explicitement avec le CRS). En général, cela a bien fonctionné (et surtout le domaine particulier qui avait échoué avec ma première méthode fonctionnait avec cela, j'ai donc la géométrie manquante!). Cependant, il y a encore un certain nombre de zones manquantes. Et dans ce cas, il y a beaucoup moins que j'ai fait aux données moi-même, il n'est donc pas si facile de supposer que je viens de gâcher les données. Des idées pourquoi mes résultats finaux ressemblent à ceci ?

Andy
la source
1
Vous pouvez essayer QGIS "Vérifier la validité de la géométrie". Peut-être que le polygone n'est pas valide.
underdark
Le renfrewshire kml a une géométrie invalide (vérifiée dans FME), il semble y avoir de nombreux polygones auto-entrecroisés. Je vérifierais votre source d'origine.
Mapperz
2
Je voudrais essayer l'ensemble de données Boundary-Line d'OS OpenData: ordnancesurvey.co.uk/opendatadownload/products.html . Cela fournit des limites d'autorité locales / unitaires pour l'ensemble du GB dans un fichier de forme.
nhopton
Ajouté plus tard: la couche Boundary-Line dont vous aurez besoin s'appelle "district_borough_unitary_region".
nhopton
2
@andy - Je pense que votre problème est dû à la taille du fichier KML produit par QGIS. Ce que je vous suggère d'essayer, c'est de charger le fichier de formes d'origine dans QGIS, puis de le simplifier (Vector -> Outils de géométrie -> Simplifier les géométries) en utilisant une 'Tolérance de simplification' de 12 ou même plus. Essayez d'abord 12. Convertissez ensuite le nouveau fichier de formes en KML.
nhopton

Réponses:

1

@andy, j'allais suggérer essentiellement la même chose que @nhopton a suggérée. La taille du fichier KML peut être à l'origine d'un problème. La simplification des géométries peut résoudre le problème. Je suggérerais cependant d'être prudent, car cela peut réduire la résolution de vos données. Je ne pense pas que ce sera nécessairement un problème pour votre ensemble de données particulier. Si vous avez ces préoccupations, vous pouvez également essayer de diviser vos données en plusieurs fichiers plus petits et de créer quelques fichiers KML au lieu d'un géant.

G.Oxsen
la source
1

Le problème est probablement dû à la limite de la couche Fusion Table avec fonction multipolygone. Je ne me souviens pas exactement de la limite, mais c'est quelque chose comme 3-5 plus grandes parties d'un multipolygone qui peuvent être rendues. Je suggère de dissoudre votre table pour avoir une fonction par partie multipolygone.

Sous le radar
la source