【问题标题】:VBA for MS Access 2007 Google Earth Project用于 MS Access 2007 谷歌地球项目的 VBA
【发布时间】:2020-07-13 21:53:33
【问题描述】:

我发现了几个例子,人们通过访问表单上的一个按钮编写了在 google earth 上映射点的代码,该按钮循环遍历表或查询中的数据。我已经使用此代码通过循环遍历记录集来映射多个点。我现在正在尝试将这些点与多边形连接起来。我已经在同一个循环代码中包含了多边形的代码。但是,不是用一个多边形连接这些点,而是为每个点制作一个多边形。我需要将循环期间找到的所有点都包含在多边形代码中,以使其正常工作。不知道如何做到这一点。代码如下。这是查看包含 SiteID、LongW、LatN 字段的表。每个站点有4-8个点。感谢您的任何建议。

Do While Not rst.EOF
        f.Write "<Placemark>"
            f.Write "<name>" & rst!SiteID & "</name>"
            f.Write "<styleUrl>#s_ylw-pushpin_hll</styleUrl>"
            f.Write "<Point>"
            f.Write "<coordinates>" & rst!LongW & "," & rst!LatN & "</coordinates>"
            f.Write "</Point>"
        f.Write "</Placemark>"

        f.Write "<Placemark>"
            f.Write "<name>UntitledPolygon</name>"
            f.Write "<styleUrl>#m_ylw-pushpin</styleUrl>"
            f.Write "<Polygon>"
            f.Write "<tessellate>1</tessellate>"
            f.Write "<outerBoundaryIs>"
            f.Write "<LinearRing>"
            f.Write "<coordinates>" & rst!LongW & "," & rst!LatN & "</coordinates>"
            f.Write strText
        f.Write "</LinearRing></outerBoundaryIs></Polygon></Placemark>" & vbCrLf
rst.MoveNext
Loop

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    给你。我不知道您的坐标是否需要按特定顺序排列。或者如果他们需要包含海拔高度。

    这里的基本思想是,在您收集所有相关坐标之前,您不应该输出多边形文本/代码。这意味着您在循环之后执行此操作。

    Dim sCoord as String
    Do While Not rst.EOF
        f.Write "<Placemark>"
            f.Write "<name>" & rst!SiteID & "</name>"
            f.Write "<styleUrl>#s_ylw-pushpin_hll</styleUrl>"
            f.Write "<Point>"
            f.Write "<coordinates>" & rst!LongW & "," & rst!LatN & "</coordinates>"
            sCoord = sCoord & rst!LongW & "," & rst!LatN & vbCrLf
            f.Write "</Point>"
        f.Write "</Placemark>"
        rst.MoveNext
    Loop
    
    f.Write "<Placemark>"
        f.Write "<name>UntitledPolygon</name>"
        f.Write "<styleUrl>#m_ylw-pushpin</styleUrl>"
        f.Write "<Polygon>"
        f.Write "<tessellate>1</tessellate>"
        f.Write "<outerBoundaryIs>"
        f.Write "<LinearRing>"
        f.Write "<coordinates>" & sCoord & "</coordinates>"
        f.Write strText
    f.Write "</LinearRing></outerBoundaryIs></Polygon></Placemark>" & vbCrLf
    

    【讨论】:

    • 您建议的代码有效。感谢您的时间和精力。我知道我想做什么,但不知道怎么做。您提供了一个简单的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多