7

いくつかのアドレスをBatchGeoにアップロードし、座標を抽出したい結果のKMLファイルをダウンロードしました。私はここでオンラインでごちゃ混ぜのテキストファイルをきれいにすることができましたが、座標を抽出するためにそれを解析する方法がわかりません。

<?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>

Python用のkmlライブラリはいくつかあるようですが、ドキュメントの面ではそれほど多くありません(例:pyKML)。チュートリアルを使用して、ここまで到達し、「lxml.etree._ElementTree」オブジェクトを作成しましたが、その属性がわかりません。

from pykml import parser

kml_file = "BatchGeo.kml"

with open(kml_file) as f:

    doc = parser.parse(f)

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

これにより、エラーが発生します。

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

では、座標のリストを取得するにはどうすればよいですか?ありがとう。

4

1 に答える 1

15
from pykml import parser

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

pykmlドキュメントを参照してください

お役に立てば幸いです。

于 2012-12-05T04:19:41.547 に答える