我正在尝试了解如何使用Excel文件来更改或操作多边形的填充属性(颜色),这些多边形组成了在Google Earth中使用的.KMZ文件。
示例:名为“地区”的KMZ文件有398个独立的地区多边形。我使用excel工作簿,列出了所属省份的相同学区列表。每个地区都有7天的每日安全事件目录。一列表示多边形名称,另一列表示事件数。
根据每个区的Excel工作表数据(编号),将多边形的属性更改为填充颜色需要采取什么措施?
示例: 0-2个事件=绿色,3-5个事件=黄色,>5个事件=红色
我只希望落入这些类别的地区有一个填充和相应的颜色。
大多数GE论坛都死了,我不能使用任何第三方软件。
发布于 2017-02-02 23:58:23
我使用一个模板KML文件执行类似的任务。我将KML文件加载到一个字符串中,然后迭代电子表格,并将近似的颜色值标记替换为我当前需要的颜色。我使用字符串搜索来查找我需要的内容,但您可以在要替换的模板中使用您自己定义的标记。
add reference to Microsoft Scripting Runtime
Dim fso As New FileSystemObject
Set AQI_Numbers = Sheets("AQI_Data").Range("AQI_Numbers")
' add color to region placemarks in KML model
For col = 1 To AQI_Numbers.Columns.Count
Date_String = Format(AQI_Numbers.Item(-1, col), "YYYY_mm_dd")
Set ts = fso.OpenTextFile(fso.GetParentFolderName(ModelPath3) & "\AQI_Regions_Model3.kml.txt", ForReading)
msKML = ts.ReadAll
ts.Close
For row = 1 To AQI_Numbers.Rows.Count ' range on sheet
s = AQI_Numbers.Item(row, 0) ' region name
t = InStr(msKML, "<name>" & s & "</name>")
' replace next <color> value
t = InStr(t, msKML, "<PolyStyle>")
t = InStr(t, msKML, "<color>") + 7
t2 = InStr(t, msKML, "</color>")
Mid(msKML, t, t2 - t) = GetKMLColor(AQI_Numbers.Item(row, col))
Next
' save this day's KML
Set ts = fso.OpenTextFile(fso.GetParentFolderName(ModelPath3) & "\AQI_II_Maps\AQI_" & Date_String & ".kml", ForWriting, True)
ts.Write msKML
ts.Close
Nexthttps://stackoverflow.com/questions/41637508
复制相似问题