使用pykml将扩展数据添加到python中的地标

时间:2012-12-05 10:28:33

标签: python kml google-earth

我已将一些地址上传到batchgeo以及几列数据。我已经下载了kml文件,然后有coordiantes。数据结构如下:

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

“描述”标签是一个乱七八糟的混乱,当您点击谷歌地图/地球中的一个点(网址,地址等)时,它会包含扩展数据。我现在想在当前扩展数据下添加一些细节。我目前的方法是使用pykml,但我找不到pykml对象的扩展数据属性,我没有在文档中看到它。当我点击谷歌地球上的地标时,我希望它出现:

<Description>
item 1
item 2
item 3
</Description>
New data

你能建议如何实现这个目标吗?谢谢。 (顺便说一句,pylibkml有这个功能,但它已经停止,我找不到下载链接!)

2 个答案:

答案 0 :(得分:4)

好的,我会在这里玩一些神秘的东西,并留下一些帮助我解决类似问题的东西。这对我有用

pm = KML.Placemark(
                KML.name("My extended data point somewhere in sahara!"),
                KML.Point(KML.coordinates("10, 15")),
                KML.ExtendedData( 
                    KML.Data(KML.value('someValueGadzilion'),name='Your value name here')
                ) 
     )

答案 1 :(得分:3)

我已经通过使用KML.description()方法实现了您所说的内容。

代码:

        placemark = KML.Placemark(
            KML.name('poi'),
            KML.description('blabla'),
            KML.LookAt(
                KML.longitude(lat),
                KML.latitude(lon),
                KML.altitude(alt),
                KML.heading('0'),
                KML.tilt(0),
                KML.range('0'),
            ),
            KML.Point(
                KML.coordinates(string)
            )
        )