Wie kann ich KML-Dateien mit Perl analysieren?
Ich versuche, eine KML-Datei mit Perl zu analysieren. Ich versuche es zu benutzenXML::Simple
Modul dafür.
Ich möchte nämlich jeden Ortsmarker durchgehen und einige Daten extrahieren
1) Mcode
2) Koordinaten
Nach dem Lesen mehrerer Beiträge habe ich Folgendes versucht, um nur die Koordinaten aller Punkte auszudrucken, aber es schlägt fehl
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $myFile = XMLin('ExperimentMap.kml');
foreach my $folder (@{$myFile->{Document}->{Folder}->{Placemark}}) {
print $folder->{Point}->{coordinates}."\n";
}
Ich benutze das folgende KML:
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Document>
<name>ExperimentMap</name>
<description><![CDATA[]]></description>
<Folder>
<name>ExperimentLayer</name>
<Placemark>
<styleUrl>#icon-503-FF8277</styleUrl>
<name>home</name>
<ExtendedData>
<Data name='string'>
<displayName>Mcode</displayName>
<value>PLAAB</value>
</Data>
</ExtendedData>
<ExtendedData>
<Data name='string'>
<displayName>postal code</displayName>
<value>450010</value>
</Data>
</ExtendedData>
<description><![CDATA[my home
Mcode: PLAAB
postal code: 450010]]></description>
<Point>
<coordinates>80.23435592651367,13.094024942328286,0.0</coordinates>
</Point>
</Placemark>
<Placemark>
<styleUrl>#icon-503-FF8277</styleUrl>
<name>shop</name>
<ExtendedData>
<Data name='string'>
<displayName>Mcode</displayName>
<value>XMPLE</value>
</Data>
</ExtendedData>
<ExtendedData>
<Data name='string'>
<displayName>postal code</displayName>
<value>450013</value>
</Data>
</ExtendedData>
<description><![CDATA[my shop
Mcode: XMPLE
postal code: 450013]]></description>
<Point>
<coordinates>80.2437973022461,13.106230102044576,0.0</coordinates>
</Point>
</Placemark>
<Placemark>
<styleUrl>#icon-503-FF8277</styleUrl>
<name>place3</name>
<ExtendedData>
<Data name='string'>
<displayName>Mcode</displayName>
<value>UDKBL</value>
</Data>
</ExtendedData>
<ExtendedData>
<Data name='string'>
<displayName>postal code</displayName>
<value>578635</value>
</Data>
</ExtendedData>
<description><![CDATA[my school
Mcode: UDKBL
postal code: 578635]]></description>
<Point>
<coordinates>80.24688720703125,13.096198508196448,0.0</coordinates>
</Point>
</Placemark>
</Folder>
<Style id='icon-503-FF8277'>
<IconStyle>
<color>ff7782FF</color>
<scale>1.1</scale>
<Icon>
<href>http://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
</IconStyle>
</Style>
</Document>
</kml>