Étiquette : kml

  • Préparer des données pour importer sur une carte GoogleMap

    Récupérer la cartographie des villes

    Afin de pouvoir personnaliser des cartes sur un outil comme Google maps il est nécessaire de connaitre les données que l’on souhaite afficher.

    Pour récupérer les informations sur les communes il existe différents portails dont un qui est géré par l’état Français.

    data.gouv.fr

    Afin de travailler avec des données géographique, un format dévié du XML a été créé.
    Il s’agit du format KML.

    C’est quoi le KML

    KML (Keyhole Markup Language) que l’on peut traduire par « langage à base de balises géolocales » est un langage fondé sur le formalisme XML et destiné à la gestion de l’affichage de données géospatiales dans les logiciels de SIG. Depuis 2008, le format est normalisé par l’Open Geospatial Consortium[1].

    Les fichiers KML utilisent le format COLLADA. Les fichiers KML peuvent également se présenter avec l’extension .kmz qui est la version zippée du fichier KML.

    Source : https://fr.wikipedia.org/wiki/Keyhole_Markup_Language

    Récupérer le fichier KML des communes de France.

    Un des jeux de données utile pour notre besoin du jour est le suivant :

    https://www.data.gouv.fr/datasets/kml-des-communes-y-compris-dom-tom

    Le fichier KML 2013 est le fichier le plus récent.

    Rechercher les informations pour une ville.

    Nous allons maintenant chercher les données de la ville de Dijon.
    Pour cela, il suffit d’ouvrir le fichier avec un éditeur de texte tel que Notepad++.
    Le plus simple étant maintenant d’utiliser la fonction rechercher de l’éditeur de texte (ctrl+F) ou bien l’équivalent dans le logiciel utilisé. Et rechercher les villes souhaitées. Il reste à répéter l’opération pour chacune des villes souhaitée. Une fois la ligne identifié un simple Copier/Coller pour extraite cette ligne du fichier texte et la placé dans un autre fichier texte sur le quel nous travaillerons.

    Récupérer les données au format KML

    Après avoir extrait plusieurs villes dont Dijon et les villes aux alentours nous obtenons ces données.

    21231,DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.089575536565229,47.286487209537071 5.056196514923361,47.300997032283817 5.028706681122397,47.296608925095136 5.016140192974899,47.30142966178078 5.002037776983911,47.300268971072107 4.978519714321396,47.303662031405473 4.971696607583492,47.307488282258824 4.967544283080219,47.315933533585437 4.970724157808152,47.318509095342414 4.964275919494243,47.323598200037317 4.966400123893134,47.326632980679001 4.994278957699485,47.33053399892669 5.010314023530682,47.323674686285592 5.017179347637073,47.339314742400305 5.024649884861583,47.335069363291673 5.038442192691177,47.337574685714742 5.034700867053301,47.353849680405737 5.039271224818588,47.354859169783069 5.036829731609578,47.367689329038335 5.041680050834943,47.372539025327015 5.051201895780872,47.377495278247764 5.055578365019143,47.372348049114727 5.055047862312534,47.363001040320682 5.06875348766261,47.353410352347851 5.082463517592105,47.350202635952819 5.069362815596588,47.340693004694394 5.074456094521769,47.321654805084457 5.088058456949834,47.318619261695531 5.083570599395527,47.313539759688005 5.085418542993923,47.310660839422667 5.101246127838603,47.30502609290091 5.096906405639799,47.301709485052612 5.089292649619458,47.293165444847197 5.089575536565229,47.286487209537071</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21617,TALANT,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.017179347637073,47.339314742400305 5.010314023530682,47.323674686285592 4.994278957699485,47.33053399892669 4.97428515596135,47.348003287477866 4.98057485365086,47.35328122736766 5.001077172390733,47.343411476076973 5.01075695925595,47.345045332001796 5.017179347637073,47.339314742400305</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21540,SAINT-APOLLINAIRE,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.088058456949834,47.318619261695531 5.074456094521769,47.321654805084457 5.069362815596588,47.340693004694394 5.082463517592105,47.350202635952819 5.103531659882708,47.355595482293928 5.118919864012566,47.336197221482166 5.109475551563838,47.32510328583809 5.097767992176658,47.319020567549366 5.088058456949834,47.318619261695531</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21535,RUFFEY-LES-ECHIREY,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.082463517592105,47.350202635952819 5.06875348766261,47.353410352347851 5.055047862312534,47.363001040320682 5.055578365019143,47.372348049114727 5.064401220832296,47.369445064177931 5.07918915728538,47.387092791726054 5.101489060982084,47.381937001079962 5.111920872581667,47.375471215539825 5.103531659882708,47.355595482293928 5.082463517592105,47.350202635952819</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21278,FONTAINE-LES-DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.034700867053301,47.353849680405737 5.038442192691177,47.337574685714742 5.024649884861583,47.335069363291673 5.017179347637073,47.339314742400305 5.01075695925595,47.345045332001796 5.016339662417089,47.361391922787497 5.033320077009097,47.356926610066942 5.034700867053301,47.353849680405737</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21223,DAIX,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.01075695925595,47.345045332001796 5.001077172390733,47.343411476076973 4.98057485365086,47.35328122736766 4.97428515596135,47.348003287477866 4.953618632699353,47.354998363633179 4.934874600118214,47.355915381571691 4.929346627615081,47.361752417400247 4.939374607118335,47.385088082861451 4.945634373691024,47.379652625655233 4.954834479249678,47.371637005516831 4.97908206396761,47.366336900742645 4.990739047195108,47.359726201789108 5.010925329995039,47.361557798747349 5.016339662417089,47.361391922787497 5.01075695925595,47.345045332001796</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21059,BELLEFOND,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.07918915728538,47.387092791726054 5.064401220832296,47.369445064177931 5.055578365019143,47.372348049114727 5.051201895780872,47.377495278247764 5.062028858377911,47.390829416355245 5.068984913871952,47.386212254608743 5.076783109805453,47.387964279040638 5.07918915728538,47.387092791726054</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21027,ASNIERES-LES-DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.041680050834943,47.372539025327015 5.03003299953786,47.382126354521063 5.040631837519833,47.400383109253241 5.050586997147076,47.40093737484974 5.054000151795407,47.394825726322303 5.062028858377911,47.390829416355245 5.051201895780872,47.377495278247764 5.041680050834943,47.372539025327015</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    

    Préparer le fichier KML

    Le fichier KML de sortie doit ressembler à ça :

    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
      <Document>
        <name>Dijon alentours</name>
        <Placemark>
          <name>Dijon (21231)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.089575536565229,47.286487209537071
            5.056196514923361,47.300997032283817
            5.028706681122397,47.296608925095136
            5.016140192974899,47.30142966178078
            5.002037776983911,47.300268971072107
            4.978519714321396,47.303662031405473
            4.971696607583492,47.307488282258824
            4.967544283080219,47.315933533435437
            4.970724157808152,47.318509095342414
            4.964275919494243,47.323598200037317
            4.966400123893134,47.326632980679001
            4.994278957699485,47.33053399892669
            5.010314023530682,47.323674686285592
            5.017179347637073,47.339314742400305
            5.024649884861583,47.335069363291673
            5.038442192691177,47.337574685714742
            5.034700867053301,47.353849680405737
            5.039271224818588,47.354859169783069
            5.036829731609578,47.367689329038335
            5.041680050834943,47.372539025327015
            5.051201895780872,47.377495278247764
            5.055578365019143,47.372348049114727
            5.055047862312534,47.363001040320682
            5.06875348766261,47.353410352347851
            5.082463517592105,47.350202635952819
            5.069362815596588,47.340693004694394
            5.074456094521769,47.321654805084457
            5.088058456949834,47.318619261695531
            5.083570599395527,47.313539759688005
            5.085418542993923,47.310660839422667
            5.101246127838603,47.30502609290091
            5.096906405639799,47.301709485052612
            5.089292649619458,47.293165444847197
            5.089575536565229,47.286487209537071
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Talant (21617)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.017179347637073,47.339314742400305
            5.010314023530682,47.323674686285592
            4.994278957699485,47.33053399892669
            4.97428515596135,47.348003287477866
            4.98057485365086,47.35328122736766
            5.001077172390733,47.343411476076973
            5.01075695925595,47.345045332001796
            5.017179347637073,47.339314742400305
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Saint‑Apollinaire (21540)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.088058456949834,47.318619261695531
            5.074456094521769,47.321654805084457
            5.069362815596588,47.340693004694394
            5.082463517592105,47.350202635952819
            5.103531659882708,47.355595482293928
            5.118919864012566,47.336197221482166
            5.109475551563838,47.32510328583809
            5.097767992176658,47.319020567549366
            5.088058456949834,47.318619261695531
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Ruffey lès Échirey (21535)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.082463517592105,47.350202635952819
            5.06875348766261,47.353410352347851
            5.055047862312534,47.363001040320682
            5.055578365019143,47.372348049114727
            5.064401220832296,47.369445064177931
            5.07918915728538,47.387092791726054
            5.101489060982084,47.381937001079962
            5.111920872581667,47.375471215539825
            5.103531659882708,47.355595482293928
            5.082463517592105,47.350202635952819
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Fontaine lès Dijon (21278)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.034700867053301,47.353849680405737
            5.038442192691177,47.337574685714742
            5.024649884861583,47.335069363291673
            5.017179347637073,47.339314742400305
            5.01075695925595,47.345045332001796
            5.016339662417089,47.361391922787497
            5.033320077009097,47.356926610066942
            5.034700867053301,47.353849680405737
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Daix (21223)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.01075695925595,47.345045332001796
            5.001077172390733,47.343411476076973
            4.98057485365086,47.35328122736766
            4.97428515596135,47.348003287477866
            4.953618632699353,47.354998363633179
            4.934874600118214,47.355915381571691
            4.929346627615081,47.361752417400247
            4.939374607118335,47.385088082861451
            4.945634373691024,47.379652625655233
            4.954834479249678,47.371637005516831
            4.97908206396761,47.366336900742645
            4.990739047195108,47.359726201789108
            5.010925329995039,47.361557798747349
            5.016339662417089,47.361391922787497
            5.01075695925595,47.345045332001796
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Bellefond (21059)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.07918915728538,47.387092791726054
            5.064401220832296,47.369445064177931
            5.055578365019143,47.372348049114727
            5.051201895780872,47.377495278247764
            5.062028858377911,47.390829416355245
            5.068984913871952,47.386212254608743
            5.076783109805453,47.387964279040638
            5.07918915728538,47.387092791726054
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Asnières lès Dijon (21027)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.041680050834943,47.372539025327015
            5.03003299953786,47.382126354521063
            5.040631837519833,47.400383109253241
            5.050586997147076,47.40093737484974
            5.054000151795407,47.394825726322303
            5.062028858377911,47.390829416355245
            5.051201895780872,47.377495278247764
            5.041680050834943,47.372539025327015
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
      </Document>
    </kml>