1

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


打开谷歌地球:

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

加载 myplaces.kml,包括启用的覆盖

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


在 Google 地球中绘制 kmls:

我尝试加载到 Google Earth 的 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>
4

1 回答 1

0

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

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

于 2009-06-10T06:56:03.680 回答