2017-04-24 103 views
0

下面是我试图用readOGR来读入的KML的摘录。该<ExtendedData>内容被遗漏了:readOGR未命中ExtendedData

test.kml

<?xml version='1.0' encoding='utf-8'?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
    <Document> 
    <Schema name="election-presidentielle-2017" id="election-presidentielle-2017"> 
     <SimpleField name="codreg" type="string"> 
     <displayName>Code Région</displayName> 
     </SimpleField> 
     <SimpleField name="codreg3car" type="string"> 
     <displayName>Code Région 3</displayName> 
     </SimpleField> 
     <SimpleField name="libreg" type="string"> 
     <displayName>Région</displayName> 
     </SimpleField> 
     <SimpleField name="coddpt" type="string"> 
     <displayName>Code Département</displayName> 
     </SimpleField> 
     <SimpleField name="codmindpt" type="string"> 
     <displayName>Code Département 
     </displayName> 
     </SimpleField> 
     <SimpleField name="coddpt3car" type="string"> 
     <displayName>Code Département 3</displayName> 
     </SimpleField> 
     <SimpleField name="libdpt" type="string"> 
     <displayName>Département</displayName> 
     </SimpleField> 
     <SimpleField name="numtour" type="string"> 
     <displayName>Tour</displayName> 
     </SimpleField> 
     <SimpleField name="codsubcom" type="string"> 
     <displayName>Code Commune</displayName> 
     </SimpleField> 
     <SimpleField name="libsubcom" type="string"> 
     <displayName>Commune</displayName> 
     </SimpleField> 
     <SimpleField name="nompsn" type="string"> 
     <displayName>Nom Candidat</displayName> 
     </SimpleField> 
     <SimpleField name="prenompsn" type="string"> 
     <displayName>Prénom Candidat</displayName> 
     </SimpleField> 
     <SimpleField name="civilitepsn" type="string"> 
     <displayName>Civilité Candidat</displayName> 
     </SimpleField> 
     <SimpleField name="numpanneaucand" type="string"> 
     <displayName>Numéro Panneau Candidat</displayName> 
     </SimpleField> 
     <SimpleField name="nbvoix" type="int"> 
     <displayName>Nombre de voix</displayName> 
     </SimpleField> 
     <SimpleField name="rapportinscrit" type="double"> 
     <displayName>Rapport Inscrit</displayName> 
     </SimpleField> 
     <SimpleField name="rapportexprime" type="double"> 
     <displayName>rapportexprime</displayName> 
     </SimpleField> 
     <SimpleField name="code_insee" type="string"> 
     <displayName>Code Insee</displayName> 
     </SimpleField> 
    </Schema> 
    <Placemark> 
     <name>84</name> 
     <Polygon> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>4.9030768998,46.1579771394 4.903773126,46.157645709 4.9067820906,46.1562053906 4.9085001702,46.1548830643 4.9095492036,46.1537791314 4.9106569632,46.1525390878 4.9112674797,46.1517595766 4.9161461217,46.1453469021 
       4.9160777584,46.1439086534 4.9156193663,46.1424337477 4.9145874913,46.1404541802 4.9093076435,46.1307852326 4.9093613658,46.1291638781 4.9158884782,46.127574897 4.9200298575,46.1257142424 4.9230135966,46.1235415672 4.9258961462,46.1201896347 
       4.9262770895,46.120045356 4.9266095705,46.120218064 4.9315756331,46.1225684278 4.9367339062,46.1262421207 4.9378762749,46.127116182 4.9390381372,46.1283943404 4.9395243837,46.1291030402 4.9399472307,46.1298137221 4.940252746,46.1307966353 
       4.9406425153,46.1321834498 4.9409012267,46.1335274654 4.9409959919,46.1341554766 4.940503709,46.134707048 4.9398299924,46.1395835589 4.9406706269,46.1415896 4.9428982044,46.1455436813 4.9460544153,46.1492521236 4.9463858083,46.1494238953 
       4.9469685666,46.1494112058 4.948566391,46.1489685562 4.9578258548,46.1529852741 4.9582913471,46.1532447772 4.9553500484,46.1540331688 4.9508770382,46.1553071858 4.9453021789,46.1573520303 4.9431568487,46.1584102059 4.9401772735,46.1602923709 
       4.9368787943,46.1618862443 4.9337395419,46.1626333003 4.931584178,46.1622772346 4.9312514883,46.1639105549 4.9316886461,46.1648390082 4.9330032704,46.167600886 4.9351734924,46.1696212725 4.9366153847,46.1699939409 4.9376185464,46.1706452011 
       4.9387676797,46.1730044996 4.939996705,46.1756767881 4.9400915327,46.1763047983 4.9397434505,46.1771682606 4.9383177085,46.1785058892 4.9369448895,46.1796183085 4.9359306904,46.1800913711 4.9341221355,46.1815732794 4.9330127333,46.1827685385 
       4.93289657,46.1830416412 4.9287600537,46.1832713453 4.916470741,46.1837323363 4.9147078505,46.183457594 4.9138535896,46.1832071613 4.913320385,46.1829035785 4.9095372185,46.1796146164 4.9088536889,46.1788649666 4.9074867671,46.176734229 
       4.907292177,46.1690883427 4.905691265,46.1646916296 4.9045896831,46.1612287097 4.9045764202,46.1609587077 4.9042950093,46.1604698149 4.903096103,46.1583812534 4.9030768998,46.1579771394 
      </coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
     <ExtendedData> 
     <SchemaData schemaUrl="election-presidentielle-2017"> 
      <SimpleData name="codreg">84</SimpleData> 
      <SimpleData name="codreg3car">084</SimpleData> 
      <SimpleData name="libreg">Auvergne et Rhône-Alpes</SimpleData> 
      <SimpleData name="coddpt">01</SimpleData> 
      <SimpleData name="codmindpt">01</SimpleData> 
      <SimpleData name="coddpt3car">001</SimpleData> 
      <SimpleData name="libdpt">Ain</SimpleData> 
      <SimpleData name="numtour">1</SimpleData> 
      <SimpleData name="codsubcom">001</SimpleData> 
      <SimpleData name="libsubcom">L'Abergement-Clémenciat</SimpleData> 
      <SimpleData name="nompsn">DUPONT-AIGNAN</SimpleData> 
      <SimpleData name="prenompsn">Nicolas</SimpleData> 
      <SimpleData name="civilitepsn">M.</SimpleData> 
      <SimpleData name="numpanneaucand">1</SimpleData> 
      <SimpleData name="nbvoix">34</SimpleData> 
      <SimpleData name="rapportinscrit">5.69</SimpleData> 
      <SimpleData name="rapportexprime">6.87</SimpleData> 
      <SimpleData name="code_insee">01001</SimpleData> 
     </SchemaData> 
     </ExtendedData> 
    </Placemark> 
    <Placemark> 
     <name>84</name> 
     <Polygon> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>4.9030768998,46.1579771394 4.903773126,46.157645709 4.9067820906,46.1562053906 4.9085001702,46.1548830643 4.9095492036,46.1537791314 4.9106569632,46.1525390878 4.9112674797,46.1517595766 4.9161461217,46.1453469021 
       4.9160777584,46.1439086534 4.9156193663,46.1424337477 4.9145874913,46.1404541802 4.9093076435,46.1307852326 4.9093613658,46.1291638781 4.9158884782,46.127574897 4.9200298575,46.1257142424 4.9230135966,46.1235415672 4.9258961462,46.1201896347 
       4.9262770895,46.120045356 4.9266095705,46.120218064 4.9315756331,46.1225684278 4.9367339062,46.1262421207 4.9378762749,46.127116182 4.9390381372,46.1283943404 4.9395243837,46.1291030402 4.9399472307,46.1298137221 4.940252746,46.1307966353 
       4.9406425153,46.1321834498 4.9409012267,46.1335274654 4.9409959919,46.1341554766 4.940503709,46.134707048 4.9398299924,46.1395835589 4.9406706269,46.1415896 4.9428982044,46.1455436813 4.9460544153,46.1492521236 4.9463858083,46.1494238953 
       4.9469685666,46.1494112058 4.948566391,46.1489685562 4.9578258548,46.1529852741 4.9582913471,46.1532447772 4.9553500484,46.1540331688 4.9508770382,46.1553071858 4.9453021789,46.1573520303 4.9431568487,46.1584102059 4.9401772735,46.1602923709 
       4.9368787943,46.1618862443 4.9337395419,46.1626333003 4.931584178,46.1622772346 4.9312514883,46.1639105549 4.9316886461,46.1648390082 4.9330032704,46.167600886 4.9351734924,46.1696212725 4.9366153847,46.1699939409 4.9376185464,46.1706452011 
       4.9387676797,46.1730044996 4.939996705,46.1756767881 4.9400915327,46.1763047983 4.9397434505,46.1771682606 4.9383177085,46.1785058892 4.9369448895,46.1796183085 4.9359306904,46.1800913711 4.9341221355,46.1815732794 4.9330127333,46.1827685385 
       4.93289657,46.1830416412 4.9287600537,46.1832713453 4.916470741,46.1837323363 4.9147078505,46.183457594 4.9138535896,46.1832071613 4.913320385,46.1829035785 4.9095372185,46.1796146164 4.9088536889,46.1788649666 4.9074867671,46.176734229 
       4.907292177,46.1690883427 4.905691265,46.1646916296 4.9045896831,46.1612287097 4.9045764202,46.1609587077 4.9042950093,46.1604698149 4.903096103,46.1583812534 4.9030768998,46.1579771394 
      </coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
     <ExtendedData> 
     <SchemaData schemaUrl="election-presidentielle-2017"> 
      <SimpleData name="codreg">84</SimpleData> 
      <SimpleData name="codreg3car">084</SimpleData> 
      <SimpleData name="libreg">Auvergne et Rhône-Alpes</SimpleData> 
      <SimpleData name="coddpt">01</SimpleData> 
      <SimpleData name="codmindpt">01</SimpleData> 
      <SimpleData name="coddpt3car">001</SimpleData> 
      <SimpleData name="libdpt">Ain</SimpleData> 
      <SimpleData name="numtour">1</SimpleData> 
      <SimpleData name="codsubcom">001</SimpleData> 
      <SimpleData name="libsubcom">L'Abergement-Clémenciat</SimpleData> 
      <SimpleData name="nompsn">LE PEN</SimpleData> 
      <SimpleData name="prenompsn">Marine</SimpleData> 
      <SimpleData name="civilitepsn">Mme</SimpleData> 
      <SimpleData name="numpanneaucand">2</SimpleData> 
      <SimpleData name="nbvoix">126</SimpleData> 
      <SimpleData name="rapportinscrit">21.07</SimpleData> 
      <SimpleData name="rapportexprime">25.45</SimpleData> 
      <SimpleData name="code_insee">01001</SimpleData> 
     </SchemaData> 
     </ExtendedData> 
    </Placemark> 
    </Document> 
</kml> 

和..

require(rgdal) 
x = readOGR('test.kml', layer=ogrListLayers("test.kml"), verbose=T) 
#> OGR data source with driver: KML 
#> Source: "test.kml", layer: "Layer #0" 
#> with 2 features 
#> It has 2 fields 
[email protected] 
#> Name Description 
#> 0 84    
#> 1 84 

Not a new problem但我不能找到一个soluition。有什么建议么?如果readOGR无法管理它,我想知道是否有一种方法可以将<ExtendedData>(也许在R之外)重新格式化为可读标签?

回答

0

行此node.js工作流提取<ExtendedData>内容CSV(连同其余部分):

ogr2ogr -f CSV test.csv test.kml 

..和可以用在R,例如空间数据团聚

[email protected] = read.csv('test.csv')