- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 csv 构建 KML 文件以在 Google 地球中显示点,但遇到一些小问题...首先,我可以用它来构建文件,但 csv 中有六组坐标,而 kml 只显示两组(实际上一组显示两次)。我显然把循环搞错了,但不知道怎么搞的。其次,生成的地标 ['53.66018'],['-1.94925'] 显示在海洋中的某处,而它应该在曼彻斯特(英国)我将不胜感激任何和所有的帮助。提前致谢!这是Python代码-
import csv
import os
fp = "C:\\Python27\\test.csv"
file = open(fp)
lines =file.readlines()
for line in lines:
line = line.strip()
fields = line.split(';') #semicolon seperated
LCID = fields[0].split() #splitting
CID = fields[1].split()
LAC = fields[2].split()
NET = fields[3].split()
LAT = fields[4].split()
LON = fields[5].split()
print 'LCID' #print splitted
print ("CID: " + str(CID))
# print ("LAC: " + str(LAC))
# print ("NET: " + str(NET))
# print ("LAT: " + str(LAT))
# print ("LON: " + str(LON))
f = open('C:\\Python27\\csv17kml.kml', 'w')
fname = "testing_Actions"
#Writing the kml file.
f.write("<?xml version='1.0' encoding='UTF-8'?>\n")
f.write("<kml xmlns='http://www.opengis.net/kml/2.2'>\n")
f.write("<Folder>\n")
f.write(" <name> Op Example </name>\n")
for row in lines:
f.write(" <Placemark>\n")
f.write(" <ExtendedData>\n")
f.write(" <Data name='CID'>\n")
f.write(" <value>\n")
f.write(" " + str(CID) +"\n")
f.write(" </value>\n")
f.write(" </Data>\n")
f.write(" <Data name='LAC'>\n")
f.write(" <value>\n")
f.write(" " + str(LAC) + "\n")
f.write(" </value>\n")
f.write(" </Data>\n")
f.write(" </ExtendedData>\n")
f.write(" <Point>\n")
f.write(" <coordinates>" + str(LAT) + "," + str(LON) + "</coordinates>\n")
f.write(" </Point>\n")
f.write(" </Placemark>\n")
f.write("</Folder>\n")
f.write("</kml>\n")
print ("File Created. ")
f.close
file.close()
这是 csv 中的数据:
LCID;CID;LAC;NET;LAT;LON
26599;26599;3569;23410;53.66018;-1.94925;
26599;26599;3569;23410;53.66018;-1.94923;
26599;26599;3569;23410;53.66019;-1.94922;
26599;26599;3569;23410;53.66019;-1.94919;
26599;26599;3569;23410;53.66018;-1.94919;
26599;26599;3569;23410;53.66018;-1.94917
这是我添加的页眉和页 footer 分...
def write_header(output_file):
return
"""<?xml version='1.0' encoding='UTF-8'?>\n
<kml xmlns='http://www.opengis.net/kml/2.2'>\n
<Folder>\n
<name> Op Example </name>\n"""
def write_footer(output_file):
return
"""</Folder>\n")
</kml>\n
print ("File Created. ")
f.close
file.close()"""
最佳答案
除了 Blutack 指出的错误之外,您还通读了输入文件,但没有将坐标存储在任何地方。
如果将代码拆分为更多模块化功能,则可以更轻松地推理功能并检查它们是否正常工作。
此外,您手动完成所有工作也太辛苦了。有一个模块用于读取csv files ,手动处理文件的关闭已被上下文管理器淘汰,如果您想要多行字符串,您可以使用三引号。此外,如果您想在模板中填写一些值,您可以使用 string formatting使用命名替换以使其更具可读性。
这就是我想到的:(使用namedtuple来获得每行的更舒适的表示)
from collections import namedtuple
import csv
location_info = namedtuple('location_info', 'LCID,CID,LAC,NET,LAT,LON')
input_filename = "input.csv"
def write_header(output_file):
pass # left as an excercise
def write_footer(output_file):
pass # also left as an exercise
def get_kml(location_info):
return """ <Placemark>
<ExtendedData>
<Data name='CID'>
<value>
{CID}
</value>
</Data>
<Data name='LAC'>
<value>
{LAC}
</value>
</Data>
</ExtendedData>
<Point>
<coordinates>{LON},{LAT}</coordinates>
</Point>
</Placemark>""".format(**location_info._asdict())
with open(input_filename, 'r') as input_file:
csv_reader = csv.reader(input_file, delimiter=';')
print next(csv_reader) # gets rid of the header line
all_locations = (location_info(*line[0:6]) for line in csv_reader) # the slicing is due to the trailing ;
with open(output_filename, 'w') as output_file:
write_header(output_file)
for location in all_locations:
output_file.write(get_kml(location))
write_footer(output_file)
关于python - 使用 Python 构建 KML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833402/
您如何将城市与谷歌地球的 kml 曲线(线)联系起来? 最佳答案 首先,由于您在 SO 我假设您是从 KML 的角度询问,而不仅仅是在桌面应用程序中。 你需要有两个城市的坐标。然后,您将从 docs
我有一个在 map 上绘制并生成 kml 字符串的项目。我想通过 ajax 请求将其发送到 kml 文件。 $.ajax({ type: 'PUT', url: 'myurl.kml'
我需要深入研究 KML,所以我在网上查看规范和示例,但我得到了一些不一致的信息。 例如,有些网站说你写了 true 之类的东西。而其他人有1 ,而其他人则说不再需要 tessellate,因为 Alt
我想用谷歌地球每 10 秒加载一个 kml 文件,我找到了这个例子 http://ukhas.org.uk/code:kml_live_update但它似乎不起作用。
我有一个具有以下结构的巨大 kml 文件: 1.5 30ffa911
我想在我的 KML 中添加一个图例,无论您在 map 上的哪个位置,该图例都将始终位于同一位置。你怎么做到这一点?叠加层什么的?非常感谢 最佳答案 您可以使用屏幕覆盖添加静态图例(尽管您需要创建手动使
我试图让 gx:track 的线根据某些条件在轨道的不同部分具有不同的颜色,但我无法找到为轨道的一部分着色的方法。我正在使用 C# 生成 kml 文件。顺便说一句,我的 gx:track 有扩展数据。
我生成的 KML 文件可能有 50,000 个或更多地标,根据特定于域的分组排列在文件夹中。 KML 文件使用打包到 KMZ 文件中的自定义图像。 我希望将单个 KML 文件分解为多个文件,根据分组进
你好,我正在编写一些 KML,然后我按顺序创建了多重几何体 地标A地标 B 我不能选择 PlMark A 因为 B 更大,但是当我有 地标 B地标A 是的,因为我认为 A 较小并且它是最后一个被绘制的
我试图让 gx:track 的线路根据某些条件在轨道的不同部分具有不同的颜色,但我无法找到为轨道的部分着色的方法。我正在使用 C# 生成 kml 文件。顺便说一句,我的 gx:track 已经扩展了数
我正在构建一个为独立的 Google 地球客户端提供数据的应用程序。我想发送一组初始数据,然后使用 动态更新它和 标签随着服务器上的变化而变化。我正在使用 Java API for KML (JAK
我对 google earth 的 kml 文件有疑问。当我使用高度模式 clampToGround 时,它完全符合我的预期,它很好地跟随地面。 pm1kml
我正在从 ArcMap 图层创建 KML 文件,该图层使用 XSLT 生成带有文件夹自定义链接的 HTML 弹出窗口。其中一些链接有嵌入的空间。当我尝试在 Google 地球中打开这些链接时,它什么也
当我在 Excel 中打开 KML 文件时,同一地标的坐标与 Google Earth 中显示的坐标不同。例如,Google Earth 中显示的地标坐标点为 24.484138°、54.400700
这个问题困扰了我大约 2 天,谷歌并没有帮助我解决这个问题。基本上,下面的代码应该定义气球内的文本。不幸的是,它不是那样工作的。如果 GE 无法处理 KML 中定义的样式,我们最终会得到似乎是后备方案
Google map 是否像 Google 地球一样支持 KML 区域? 谷歌在这里给出了一个很好的区域描述/教程: https://developers.google.com/kml/documen
我创建了一个具有 15.439 轮廓的 kml 文件,每个文件都有 360 个坐标。文件大小为 369Mb。 当我尝试打开文件时,Google 地球显示一条消息: “Google 地球遇到问题需要关闭
我的 KML 地标具有这样填充的描述元素 someTag ]]> 使用 Google 地球 5,当您点击气球中的链接时,kml 将按预期下载并显示。 使用 Google 地球专业版 6,当您点击气
我正在读取 Kml 文件,更改地标的名称,然后再次保存。 var KmlFile = XDocument.Load("C:\\Inetpub\\wwwroot\\GeotagService\\Kml\
您好,我有一个多几何图形,当您将鼠标传递给线条时,样式如何像翻转一样,我的问题是多几何图形中的不同线串可能具有不同的颜色? 在下一个示例中,当您选择样式时,我有地标 Durham Tees Valle
我是一名优秀的程序员,十分优秀!