gpt4 book ai didi

python - 如何显示多个地标和路径?

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:37 26 4
gpt4 key购买 nike

我正在使用 PyKml 模块在我的 Python 脚本中形成 kml。我想显示由坐标数组组成的路径,并将所有点显示为地标。目前,我正在尝试(没有成功)按照以下方式进行

 doc = K.kml(
K.Document(
K.Placemark(
K.Point(
K.name("pl1"),
K.coordinates("52.4858, 25.9218, 1051.05105105")
)
),
K.Placemark(
K.name("path1"),
K.LineStyle(
K.color(0x7f00ffff),
K.width(10)
),
K.LineString(
K.coordinates(
coord_str
)
)
)
)
)

路径看起来不错,但当我开始添加地标时,Google map 仅显示第一个。我应该使用什么来显示路径上的所有地标?我是否需要某种元编程(即在对象定义中自动添加地标)?或者也许还有其他什么?

最佳答案

这应该让您迭代对象并将每个点与其终止的行关联起来:

from pykml.factory import KML_ElementMaker as K
from lxml import etree

#line_points here comes from a geojson object
data = json.loads(open('tib.json').read())
line_points = data['features'][0]['geometry']['coordinates']

_doc = K.kml()

doc = etree.SubElement(_doc, 'Document')

for i, item in enumerate(line_points):
doc.append(K.Placemark(
K.name('pl'+str(i+1)),
K.Point(
K.coordinates(
str(item).strip('[]').replace(' ', '')
)
)
)
)

doc.append(K.Placemark(
K.name('path'),
K.LineStyle(
K.color('#00FFFF'),
K.width(10)
),
K.LineString(
K.coordinates(
' '.join([str(item).strip('[]').replace(' ', '') for item in line_points])
)
)
))

s = etree.tostring(_doc)

print s

其中 line_points 是这样的列表的列表,其坐标为:

[[-134.15611799999999, 34.783318000000001, 0],
[-134.713527, 34.435267000000003, 0],
[-133.726201, 36.646867, 0],
[-132.383655, 35.598272999999999, 0],
[-132.48034200000001, 36.876308999999999, 0],
[-131.489846, 36.565426000000002, 0],...

Here (http://sfgeo.org/data/contrib/tiburon.html)是一个输出示例,jsfiddle 如下:http://jsfiddle.net/bvmou/aTkpN/7/但是公开查看api key有问题,请在本地机器上尝试一下。

关于python - 如何显示多个地标和路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com