Gis 如何通过Excel工作簿数据修改Google Earth多边形属性

Gis 如何通过Excel工作簿数据修改Google Earth多边形属性,gis,google-earth,kmz,Gis,Google Earth,Kmz,我试图找出如何使用Excel文件来改变或操纵多边形的填充属性(颜色),这些多边形构成了Google Earth中使用的.KMZ文件 示例:名为“Districts”的KMZ文件有398个单独的分区多边形。我使用一个excel工作簿,其中列出了在所属省份之间划分的相同地区的列表。每个地区每天都有安全事件目录,为期七天。一列用于多边形名称,一列用于事件数 根据每个地区的Excel表格数据(数字),将多边形的属性更改为填充颜色需要什么 示例:0-2个事件=绿色,3-5个事件=黄色,超过5个事件=红色

我试图找出如何使用Excel文件来改变或操纵多边形的填充属性(颜色),这些多边形构成了Google Earth中使用的.KMZ文件

示例:名为“Districts”的KMZ文件有398个单独的分区多边形。我使用一个excel工作簿,其中列出了在所属省份之间划分的相同地区的列表。每个地区每天都有安全事件目录,为期七天。一列用于多边形名称,一列用于事件数

根据每个地区的Excel表格数据(数字),将多边形的属性更改为填充颜色需要什么

示例:0-2个事件=绿色,3-5个事件=黄色,超过5个事件=红色

我只希望属于这些类别的地区有一个填充和相应的颜色


大多数GE论坛都已关闭,我无法使用任何第三方软件。

我使用模板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
Next
添加对Microsoft脚本运行时的引用
将fso设置为新的FileSystemObject
设置AQI_编号=图纸(“AQI_数据”)。范围(“AQI_编号”)
'为KML模型中的区域放置标记添加颜色
对于col=1到AQI_Numbers.Columns.Count
日期字符串=格式(AQI\U编号。项目(-1,列),“YYYY\U mm\U dd”)
设置ts=fso.OpenTextFile(fso.GetParentFolderName(ModelPath3)和“\AQI\u Regions\u Model3.kml.txt”,以便读取)
msKML=ts.ReadAll
关闭
对于表上AQI_Numbers.Rows.Count'范围的行=1
s=AQI_编号。项目(行,0)的区域名称
t=InStr(msKML,“&s&”)
'替换下一个值
t=仪表(t,msKML,“”)
t=仪表(t,msKML,“”)+7
t2=仪表(t,msKML,“”)
Mid(msKML,t,t2-t)=GetKMLColor(AQI_编号。项目(行,列))
下一个
“保存今天的KML
设置ts=fso.OpenTextFile(fso.GetParentFolderName(ModelPath3)&“\AQI\u II\u Maps\AQI\u”&日期字符串和“.kml”,用于写入,为True)
写msKML
关闭
下一个