【问题标题】:What is wrong with my KML files that they cause Google Earth to not respond?我的 KML 文件有什么问题导致 Google 地球没有响应?
【发布时间】:2010-10-31 08:37:33
【问题描述】:

当我尝试打开 Google 地球和尝试将 KML 文件绘制到其中时,我遇到了冻结的问题。


打开谷歌地球:

有时当我尝试打开 Google 地球时,它会冻结,而:

正在加载 myplaces.kml,包括启用的叠加层

我假设这个问题是由以下事实引起的:如果我将保存到“我的位置”的 kmls 的总大小加起来,它们大约是 3MB。当我在我的伴奏中搜索“我的位置”时,该文件的大小只有不到 400kb。我假设这意味着 Google 地球以不同的格式存储它。
无论如何,我该怎么办?我真的更愿意将所有内容保留在 Google 地球的“我的位置”中,因为每个文件都需要永远加载,但如果我需要删除“我的位置”并重新开始,我想我必须这样做。此外,我不能关闭 Google 地球并在它变为非响应式时重新打开它,因为它仍然无法正常工作。有时,如果我在它关闭后让它静置一会儿而不碰它,它就会打开。知道发生了什么吗?


在 Google 地球中绘制 kmls:

我尝试加载到 Google 地球中的 kml 文件范围从包含 177 个点的文件大约 67kb 到包含 1172 个点的 454kb。我还必须绘制一个包含 2637 个点的 937kb 的 kml 文件。大多数情况下,要绘制要绘制的文件,我必须用记事本编辑 kml,删除除一个点之外的所有点,绘制该点,然后重新运行 Excel 宏以取回完整文件。然后我绘制它,这会导致此消息:

您确定要重新加载此文件,所有未保存的编辑都将丢失吗?

然后它通常在那个时候开始绘制就好了。如果我尝试在没有完成我刚才谈到的过程的情况下直接双击 kml 文件,Google 地球就会变得无响应。这是我的代码示例和它创建的部分 kml 文件的示例。
知道我可以做些什么来解决这些问题吗?
使用“模板”为 kml 填写数据会更好吗?


注意事项:

  • 我的计算机上运行的是 Windows XP。我的老板正在经营 Vista Business,他通常比我更容易遇到这个问题。

  • 我知道代码有点难看,需要清理,但我的老板告诉我不要打扰,因为我正在做的事情不会用于生产,而是更专注于获取他需要的文件而不是使代码更具可读性。丑的请放宽心。

  • 这是我被交给修改以获得我们需要的数据的代码,因此我不知道与其他方法相比它的效率如何。


代码:

Sub Create_KML()
REM Builds KML from spread sheet

REM Open File For Random As #1 ' "c:\Users\mwilson\Desktop\Trash.txt
REM Open "c:\Users\mwilson\Desktop\Test Google\Trash.txt" For Output As #1
Open "C:\Documents and Settings\eecoop\Desktop\10 day avg rssi Google kml\MorrisAveOpelikaMIUS.kml" For Output As #1
i = 2
miuID = Range("A" & i).Text
RSSI = Range("C" & i).Text
ColID = Range("G" & i).Text
ColName = Range("F" & i).Text
Address = Range("M" & i).Text & ", Opelika, AL"
Print #1, "<?xml version=""1.0"" encoding=""utf-8""?>"         
Print #1, "<kml xmlns=""http://www.opengis.net/kml/2.2"">"     
Print #1, "<Document>"
While miuID <> ""
If RSSI >= -85 Then
DotColor = "Green.png"
ElseIf RSSI >= -95 Then
DotColor = "Yellow.png"
ElseIf RSSI >= -105 Then
DotColor = "Orange.png"
Else
DotColor = "Red.png"
End If

Print #1, "   <Placemark>"                                        '3
Print #1, "     <name>"; RSSI; " / "; ColID; "</name>"                        '4
Print #1, "     <description>"; miuID; " Owned by "; ColName; "</description>"                        '4
Print #1, "        <Style>"                                     '5
Print #1, "           <IconStyle>"                              '6
Print #1, "               <scale>.6</scale>"                    '7
Print #1, "               <Icon>"                               '8
Print #1, "                  <href>"; DotColor; "</href>"           '9
Print #1, "               </Icon>"                             '10
Print #1, "            </IconStyle>"                            '11
Print #1, "        </Style>"                                     '12
Print #1, "     <address>"; Address; "</address>" '13
Print #1, " </Placemark>"                                        '14

i = i + 1
miuID = Range("A" & i).Text
RSSI = Range("C" & i).Text
ColID = Range("G" & i).Text
ColName = Range("F" & i).Text
Address = Range("M" & i).Text & ", Opelika, AL"
Wend
Print #1, "</Document>"
Print #1, "</kml>"                                               '15
Print #1, " "
    Close #1
    
End Sub

KML:

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
   <Placemark>
     <name>-108 / 4</name>
     <description>110001124 Owned by Morris Ave.</description>
        <Style>
           <IconStyle>
               <scale>.6</scale>
               <Icon>
                  <href>Red.png</href>
               </Icon>
            </IconStyle>
        </Style>
     <address>3501 BIRMINGHAM HWY, Opelika, AL</address>
 </Placemark>
   <Placemark>
     <name>-95 / 4</name>
     <description>110001146 Owned by Morris Ave.</description>
        <Style>
           <IconStyle>
               <scale>.6</scale>
               <Icon>
                  <href>Yellow.png</href>
               </Icon>
            </IconStyle>
        </Style>
     <address>2100 INDUSTRIAL BLVD, Opelika, AL</address>
 </Placemark>

【问题讨论】:

  • 这与您的问题无关:您住在阿拉巴马州的欧佩莱卡?我有家人住在拉内特。小世界吧?至于大小差异(400KB 到 3MB),可能与它可能将其存储为 KMZ(压缩 KML)的事实有关。
  • 如果所有 1,172 个点都有地址(并且没有点),那么启动延迟可能是 Google 地球执行地理定位查找并获取每个点的纬度/经度位置。尝试取消选中已保存地点的根文件夹以使这些地点不可见,然后重新启动 Google 地球。

标签: kml google-earth


【解决方案1】:

3MB 未压缩的 KML 听起来很小。 Google 地球在处理这种大小的文件时通常没有问题。您使用的是什么版本的 GE?

如果 KML 中没有任何专有信息,介意发布其中一个的链接吗?

【讨论】:

  • Google 地球 5.0.11733.9347 构建日期 2009 年 5 月 5 日 构建时间 凌晨 2:43:21 渲染器 OpenGL 操作系统 Microsoft Windows XP(Service Pack 3) 视频驱动程序 Intel (00006.00014.00010.04837) 最大纹理大小2048x2048 服务器 kh.google.com 这是我可以在我的谷歌地球上找到的所有信息。我刚吃了一个DOH!此刻,我的问题也可能是我工作中的旧显卡。
  • 啊,好的。这里有一篇关于显卡相关问题的好文章:earth.google.com/support/bin/answer.py?hl=en&answer=20713
猜你喜欢
  • 2015-02-19
  • 2023-04-06
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 2017-06-12
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多