​​谷歌气球 simplekml 入门《一》​​谷歌气球 simplekml 入门《二》
谷歌气球 simplekml 入门《三》
谷歌气球 simplekml 入门《四》
谷歌气球 simplekml 入门《五》
谷歌气球 simplekml 入门klm解说《六》
谷歌气球 simplekml 入门《七》
谷歌气球 simplekml 《八》地图动画之旋转动画的制作-全网唯一

简单的安装

​pip install simplekml​

一、​​Point​​​ 点 ​​simplekml.Point(extrude=None, altitudemode=None, gxaltitudemode=None, **kwargs)​

import simplekml
kml = simplekml.Kml()
pnt = kml.newpoint(name="shanghai", coords=[[121.4222, 31.218123]])
# lon, lat, optional height
pnt.description = "描述信息: 东方魔都"
pnt.style.labelstyle.color = simplekml.Color.red # 设置字体颜色 'ffff0000'
pnt.style.labelstyle.scale = 2 # 设置字体大小
pnt.style.labelstyle.scale = 0.0 # 隐藏字体 name
pnt.iconstyle.icon.href = '' # 取消图标
pnt.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png' # 设置图标
pnt.style.iconstyle.scale = 3 # 设置图片的大小
kml.save("上海.kml")

coords 默认位置为 0.0, 0.0, 0.0

  • ​altitudemode​​​ 指定如何解释相机的高度。接受​​simplekml.AltitudeMode​​常量。
  • ​camera​​ 查看场景的相机,接受simplekml.Camera
  • ​coords​​​ 特征的坐标,接受元组列表。
    元组以经度后纬度的顺序表示坐标。元组可以选择指定高度。
    如果没有给出高度,则默认为零。
    一个点特征只有一个点,因此给出了一个包含一个元组的列表。
没有高度: [(1.0, 1.0), (2.0, 1.0)]
高度: [(1.0, 1.0, 50.0), (2.0, 1.0, 10.0)]
Point: [(1.0, 1.0)] # 经度、纬度
Point + height: [(1.0, 1.0, 100)] # 经度,纬度,高度为100m
  • ​description​​ 信息气球中显示的描述,接受字符串。
  • ​extrude​​ 将 Point 连接到地面,接受 int(0 或 1)。
  • ​gxaltitudemode​​ 指定如何解释相机的高度。加上相对于海底。接受simplekml.GxAltitudeMode常量。
  • ​iconstyle​​ 特征的 IconStyle,接受simplekml.IconStyle
  • ​labelstyle​​ 特征的 LabelStyle,接受simplekml.LabelStyle
  • ​linestyle​​ 特征的 LineStyle,接受simplekml.LineStyle
  • ​liststyle​​ 特征的 ListStyle,接受simplekml.ListStyle
  • ​lookat​​ 相对于特征的相机,接受simplekml.LookAt
  • ​name​​ 地标名称,接受字符串。
  • ​polystyle​​ 特征的 PolyStyle,接受simplekml.PolyStyle
  • ​region​​ 特征的边界框,接受simplekml.Region
  • ​style​​ 特征的当前样式,接受simplekml.Style
  • ​stylemap​​ 特征的当前 StyleMap,接受simplekml.StyleMap
  • ​timespan​​ 一段时间,接受simplekml.TimeSpan
  • ​timestamp​​ 单一时刻,接受simplekml.TimeStamp
  • ​visibility​​ 是否显示功能,接受 int 0 或 1。

二、​​Point​​ 点 创建一个点

pnt = kml.newpoint(name="Kirstenbosch", description="A botanical Garden", coords=[(18.432314,-33.988862)]) 

pnt.lookat = simplekml.LookAt(
gxaltitudemode=simplekml.GxAltitudeMode.relativetoseafloor,
latitude=0.0,
longitude=0.0,
range=3000,
heading=56,
tilt=78
)

上述参数的值可以通过直接分配给它们来改变:

pnt.name = "Tree"
pnt.description = "A big plant."
ls = kml.newlinestring(name="Journey path")
ls.coords.addcoordinates([(18.432314,-33.988862)])

三、删除属性

如果有需要从树中删除的属性,只需将其设置为None:
kml = simplekml.Kml(name="A name") # 给KML文档起个名字
kml.document.name = None # 删除我们上面给出的名称
pnt.style.iconstyle.icon.href = None # 删除谷歌地球中黄色

四、​​LineString​​​ 线 ​​LineString(extrude=None, tessellate=None, altitudemode=None, gxaltitudemode=None, gxaltitudeoffset=None, gxdraworder=None, **kwargs)​

LineString(
extrude=None, 挤压
tessellate=None, 镶嵌
altitudemode=None, 海拔模式
gxaltitudemode=None, gx高度模式
gxaltitudeoffset=None, gx高度偏移
gxdraworder=None, gx提款单
**kwargs
)
  • 用法
import simplekml
kml = simplekml.Kml()
ls = kml.newlinestring(name='A LineString')
ls.coords = [(18.333868,-34.038274,10.0), (18.370618,-34.034421,10.0)]
ls.extrude = 1
ls.altitudemode = simplekml.AltitudeMode.relativetoground
kml.save("LineString.kml")
  • 造型
import simplekml
kml = simplekml.Kml()
ls = kml.newlinestring(name='A LineString')
ls.coords = [(18.333868,-34.038274,10.0), (18.370618,-34.034421,10.0)]
ls.extrude = 1
ls.altitudemode = simplekml.AltitudeMode.relativetoground
ls.style.linestyle.width = 5
ls.style.linestyle.color = simplekml.Color.blue
kml.save("LineString Styling.kml")

# start_line3.style.linestyle.color = simplekml.Color.changealphaint(200, simplekml.Color.rgb(r, g, b)) 颜色
# start_line3.altitudemode = simplekml.AltitudeMode.clamptoground # 贴近地面
# pol.style.polystyle.color = simplekml.Color.hex(ss)
address         标准地址,接受字符串。
altitudemode 指定如何解释相机的高度。 接受simplekml.AltitudeMode常数。
atomauthor 功能的作者,接受字符串。
atomlink 包含此 KML 的 URL,接受字符串。
balloonstyle 功能的 BalloonStyle,接受 simplekml.BalloonStyle
camera 查看场景的相机,接受 simplekml.Camera
coords 特征的坐标,接受元组列表。
元组按经度和纬度的顺序表示坐标。元组可以选择指定高度。如果没有给出高度,则默认为零。
一个点特征只有一个点,因此给出了一个包含一个元组的列表。
例子:
没有高度: [(1.0, 1.0), (2.0, 1.0)]
高度: [(1.0, 1.0, 50.0), (2.0, 1.0, 10.0)]
点: [(1.0, 1.0)] # 经度,纬度
点+高度: [(1.0, 1.0, 100)] #经度,纬度,高度为100m

description 信息气球中显示的说明,接受字符串。
extendeddata 功能的简短描述,接受 simplekml.Snippet
extrude 将 LinearRing 接地,接受 int(0 或 1)。
gxaltitudemode 指定如何解释相机的高度。加上相对于海底。接受simplekml.GxAltitudeMode常数。

gxaltitudeoffset 垂直偏移 LinearRing 的程度,接受 int。
gxballoonvisibility 切换描述气球的可见性,接受 int 0 或 1
gxdraworder 绘制线串的顺序,接受 int。
iconstyle 功能的图标样式,接受 simplekml.IconStyle
labelstyle 特征的标签样式,接受 simplekml.LabelStyle
linestyle 要素的 LineStyle,接受 simplekml.LineStyle
liststyle 功能的列表样式,接受 simplekml.ListStyle
lookat 相机相对于该功能,接受 simplekml.LookAt
name 地标名称,接受字符串。
phonenumber Google Maps mobile 使用的电话号码,接受字符串。
placemark 包含此功能的地标,只读。
polystyle 特征的 PolyStyle,接受 simplekml.PolyStyle
region 特征的边界框,接受 simplekml.Region
snippet 功能的简短描述,接受 simplekml.Snippet
style 功能的当前样式,接受 simplekml.Style
stylemap 功能的当前 StyleMap,接受 simplekml.StyleMap
tessellate 允许 LinearRing 跟随地形,接受 int(0 或 1)。
timespan 一段时间,接受 simplekml.TimeSpan
timestamp 单一时刻,接受 simplekml.TimeStamp
visibility 是否显示该功能,接受 int 0 或 1。
xaladdressdetails xAL 格式的地址,接受字符串。

六、创建多边形

simplekml.Polygon( 
extrude=None, 挤压
tessellate=None, 镶嵌
altitudemode=None, 海拔模式
gxaltitudemode=None,
outerboundaryis=(), 外边界
innerboundaryis=(), 内边界
**kwargs
)
import simplekml
kml = simplekml.Kml()
pol = kml.newpolygon(name='A Polygon')
pol.outerboundaryis = [(18.333868,-34.038274), (18.370618,-34.034421),
(18.350616,-34.051677),(18.333868,-34.038274)]
pol.innerboundaryis = [(18.347171,-34.040177), (18.355741,-34.039730),
(18.350467,-34.048388),(18.347171,-34.040177)]

# 线段框的颜色,粗细
pol.style.linestyle.color = simplekml.Color.green
pol.style.linestyle.width = 5

# 框里的透明度,与颜色 透明与越小越,越清晰
pol.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)
kml.save("Polygon Styling.kml")
address           标准地址,接受字符串。
altitudemode 指定如何解释相机的高度。 接受simplekml.AltitudeMode常数。
atomauthor 功能的作者,接受字符串。
atomlink 包含此 KML 的 URL,接受字符串。
balloonstyle 功能的 BalloonStyle,接受 simplekml.BalloonStyle
camera 查看场景的相机,接受 simplekml.Camera
description 信息气球中显示的说明,接受字符串。
extendeddata 功能的简短描述,接受 simplekml.Snippet
extrude 将 LinearRing 接地,接受 int(0 或 1)。
gxaltitudemode 指定如何解释相机的高度。加上相对于海底。接受simplekml.GxAltitudeMode常数。
gxballoonvisibility 切换描述气球的可见性,接受 int 0 或 1
iconstyle 功能的图标样式,接受 simplekml.IconStyle
innerboundaryis 内在边界。接受多个边界的浮点元组列表,或单个边界的浮点元组列表。
labelstyle 特征的标签样式,接受 simplekml.LabelStyle
linestyle 要素的 LineStyle,接受 simplekml.LineStyle
liststyle 功能的列表样式,接受 simplekml.ListStyl
lookat 相机相对于该功能,接受 simplekml.LookAt
name 地标名称,接受字符串。
outerboundaryis 外部边界接受浮点数元组列表。
phonenumber Google Maps mobile 使用的电话号码,接受字符串。
placemark 包含此功能的地标,只读。
polystyle 特征的 PolyStyle,接受 simplekml.PolyStyle
region 特征的边界框,接受 simplekml.Region
snippet 功能的简短描述,接受 simplekml.Snippet
style 功能的当前样式,接受 simplekml.Style
stylemap 功能的当前 StyleMap,接受 simplekml.StyleMap
tessellate 允许多边形跟随地形,接受 int(0 或 1)。
timespan 一段时间,接受 simplekml.TimeSpan
timestamp 单一时刻,接受 simplekml.TimeStamp
visibility 是否显示该功能,接受 int 0 或 1。
xaladdressdetails xAL 格式的地址,接受字符串。