Вот отрывок из KML, который я пытаюсь прочитать с помощью 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
x@data
#> Name Description
#> 0 84
#> 1 84
Не новая проблема, но я не могу найти решение. Какие-либо предложения? Если readOGR
не может с этим справиться, интересно, есть ли способ переформатировать <ExtendedData>
(возможно, вне R) в читаемые теги?