2012-12-04 13 views
5

Ho caricato alcuni indirizzi su BatchGeo e scaricato il file KML risultante da cui voglio estrarre le coordinate. Sono riuscito a migliorare il file di testo confuso online here, ma non so come analizzarlo per estrarre le coordinate.Estrai coordinate da KML BatchGeo File con 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> 

Sembra che ci siano diverse biblioteche kml per Python, ma non molto in termini di documentazione (ad esempio pyKML). Utilizzando il tutorial, ho ottenuto fino a questo punto e ha creato un oggetto 'lxml.etree._ElementTree' Ma io non sono sicuro dei suoi attributi:

from pykml import parser 

kml_file = "BatchGeo.kml" 

with open(kml_file) as f: 

    doc = parser.parse(f) 

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

Questo dà l'errore:

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

Così come ottengo una lista di coordinate? Grazie.

risposta

10
from pykml import parser 

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

vedere the pykml docs

speranza che aiuta!