2012-12-04 41 views
5

Tôi đã tải một số địa chỉ lên BatchGeo và tải xuống tệp KML kết quả mà từ đó tôi muốn trích xuất tọa độ. Tôi quản lý để prettify các tập tin văn bản lộn xộn trực tuyến here, nhưng tôi không biết làm thế nào để phân tích nó để trích xuất các tọa độ.Trích xuất tọa độ từ tệp KML BatchGeo bằng 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> 

Dường như có một số thư viện kml cho trăn nhưng không có nhiều trong cách tài liệu (ví dụ: pyKML). Sử dụng hướng dẫn này, tôi đã có này xa và tạo ra đối tượng một 'lxml.etree._ElementTree' nhưng tôi không chắc chắn về các thuộc tính của nó:

from pykml import parser 

kml_file = "BatchGeo.kml" 

with open(kml_file) as f: 

    doc = parser.parse(f) 

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

này cung cấp cho các lỗi:

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

Vì vậy, làm thế nào để tôi có được một danh sách các tọa độ? Cảm ơn.

Trả lời

10
from pykml import parser 

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

thấy the pykml docs

hy vọng rằng sẽ giúp!