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

时间:2017-01-13 15:02:18

标签: gis google-earth kmz

我正在尝试找出如何使用Excel文件来更改或操纵组成Google地球中使用的.KMZ文件的多边形的填充属性(颜色)。

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

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

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

我只希望属于这些类别的区域具有填充和相应的颜色。

大多数GE论坛已经死亡,我无法使用任何第三方软件。

1 个答案:

答案 0 :(得分:0)

我使用模板 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