首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多边形在谷歌地球上的显示- simpleKML

多边形在谷歌地球上的显示- simpleKML
EN

Stack Overflow用户
提问于 2018-05-30 03:39:17
回答 1查看 937关注 0票数 0

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

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

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

代码语言:javascript
复制
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‘是一个2D数组,所有的经度/经度信息都存储在其中。

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

代码语言:javascript
复制
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 Earth中打开kml文件

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 23:36:40

网上几乎没有关于这个问题的文档,所以我想我会把我的问题的答案发布给将来有这个问题的人。

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

代码语言:javascript
复制
    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()‘输入浮点数,例如:

代码语言:javascript
复制
pol.outerboundaryis = [(18.333868,-34.038274), (18.370618,-34.034421),
                       (18.350616,-34.051677),(18.333868,-34.038274)]

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50591760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档