2012-12-04 12 views
5

Przesłałem kilka adresów do BatchGeo i pobrałem wynikowy plik KML, z którego chcę wyodrębnić współrzędne. Udało mi się upiększyć pomieszany plik tekstowy online here, ale nie wiem jak go sparsować, aby wyodrębnić współrzędne.Wyodrębnij współrzędne z pliku BatchGeo pliku KML z Python

<?xml version="1.0" ?> 
<kml xmlns="http://earth.google.com/kml/2.0"> 
    <Document> 
     <Placemark> 
      <name>...</name> 
      <description>....</description> 
      <Point> 
       <coordinates>-3.1034345755337,57.144817425039,0</coordinates> 
      </Point><address>...</address> 
      <styleUrl>#0</styleUrl> 
     </Placemark> 
    </Document> 
</kml> 

Wydaje się, że kilka bibliotek KML dla Pythona, ale nie dużo w dokumentacji (np pyKML). Korzystanie z samouczka, mam tak daleko i stworzył object 'lxml.etree._ElementTree, ale nie jestem pewien jego atrybutów:

from pykml import parser 

kml_file = "BatchGeo.kml" 

with open(kml_file) as f: 

    doc = parser.parse(f) 

coordinate = doc.Element("coordinates") 
print coordinate 

To daje błąd:

AttributeError: 'lxml.etree._ElementTree' object has no attribute 'Element' 

So jak mogę uzyskać listę współrzędnych? Dzięki.

Odpowiedz

10
from pykml import parser 

root = parser.fromstring(open('BatchGeo.kml', 'r').read()) 
print root.Document.Placemark.Point.coordinates 

zobaczyć the pykml docs

nadzieję, że pomoże!

Powiązane problemy