【问题标题】:polygon showing up in Google Earth - simpleKML多边形出现在 Google 地球中 - simpleKML
【发布时间】:2018-05-29 19:39:16
【问题描述】:

背景 - 我正在尝试创建一个圆形多边形并使用 simpleKML 将其添加到 kml。

kml 知道应该添加一个多边形,并且它具有正确的颜色、宽度和描述,但是每当我缩放到该位置时,它都会将我带到坐标 0,0 并且没有多边形。

我创建多边形的代码如下:

pol = kml.newpolygon(name=pnt.name) 
pol.description = ("A buffer for " + pnt.name)
pol.innerboundaryis = [newCoord]
pol.style.linestyle.color = simplekml.Color.green
pol.style.linestyle.width = 5
pol.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)

其中 'newCoord' 是一个二维数组,其中存储了所有经纬度信息。

因为我认为数组可能无法正确格式化数据,所以我尝试使用代码形成一个简单的三角形:

pol1 = kml.newpolygon(name=pnt.name) 
pol1.innerboundaryis = [(46.714,-75.6667),(44.60796,-74.502),(46.13910,-74.57411),(46.714,-75.6667)]
pol1.style.linestyle.color = simplekml.Color.green
pol1.style.linestyle.width = 5
pol1.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)

但它与第一​​个问题相同。

我尝试使用 .innerboundaryis() 和 .outerboundaryis() 来形成多边形,但没有成功,我的想法已经不多了。

编辑:我应该补充一点,我正在 Google 地球中打开 kml 文件

【问题讨论】:

    标签: python polygon latitude-longitude google-earth simplekml


    【解决方案1】:

    网上几乎没有关于此问题的文档,所以我想我会为将来遇到此问题的任何人发布我的问题的答案。

    这是我使用的使多边形工作的代码。

        newCoords = []
        pol = kml.newpolygon(name=pnt.name) 
        pol.description = ("A buffer for " + pnt.name)
    
        if pnt.name in bufferList:
            bufferRange = input('Enter the buffer range. ' )
            for i in range(360):
                newCoords.append( ( math to calculate Lat, math to calculate Long ) )
                pol.outerboundaryis.coords.addcoordinates([newCoords[i]])
    
    
            pol.style.linestyle.color = simplekml.Color.green
            pol.style.linestyle.width = 5
            pol.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)
    

    在使用“coords.addcoordinates()”函数将坐标添加到多边形的外边界之前,您需要将它们放入一个列表中。此外,它必须是一维列表,因此纬度和经度坐标必须存储在同一个位置。

    你可以直接用'.outerboundaryis()'输入浮点数,例如:

    pol.outerboundaryis = [(18.333868,-34.038274), (18.370618,-34.034421),
                           (18.350616,-34.051677),(18.333868,-34.038274)]
    

    但 '.addcoordinates()' 只接受列表和整数。

    【讨论】:

    • 你能分享一下完整的代码吗,会有帮助的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多