本文整理汇总了Python中qgis.core.QgsPoint.azimuth方法的典型用法代码示例。如果您正苦于以下问题:Python QgsPoint.azimuth方法的具体用法?Python QgsPoint.azimuth怎么用?Python QgsPoint.azimuth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsPoint
的用法示例。
在下文中一共展示了QgsPoint.azimuth方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: arc
# 需要导入模块: from qgis.core import QgsPoint [as 别名]
# 或者: from qgis.core.QgsPoint import azimuth [as 别名]
def arc(p1, p2, offset=1):
# point in middle
mp = QgsPoint((p1.x()+p2.x())/2, (p1.y()+p2.y())/2)
# distance between the two points
d = sqrt(p1.sqrDist(p2))
# orthogonal direction to segment p1-p2
az = (p1.azimuth(p2)+90)*pi/180
# create point distant to segment of offset of segment length, will be center of circular arc
cp = QgsPoint(mp.x()+d*offset*sin(az),
mp.y()+d*offset*cos(az))
# radius
r = d*sqrt(4*offset*offset+1)/2
# calculate start and end azimuth of circular arc
az1 = cp.azimuth(p1)
az2 = cp.azimuth(p2)
if az2 < az1:
az2 += 360
# draw arc
vx = [cp.x()+r*sin(az*pi/180) for az in floatrange(az1, az2, 5)]
vy = [cp.y()+r*cos(az*pi/180) for az in floatrange(az1, az2, 5)]
arcLine = [QgsPoint(vx[i], vy[i]) for i in range(len(vx))]
return QgsGeometry().fromPolyline(arcLine)