已知A、B两点的坐标,为了计算未知点P的坐标,只要观测∠A和∠B即可。这种测定未知点P的平面坐标的方法称为前方交会。
后方交会是指仅在待定点上设站,向三个已知控制点观测两个水平夹角a、b,从而计算待定点的坐标,称为后方交会。
原理为利用后方交会计算外方位元素,利用前方交会解算待定地面点坐标。
扩展资料
交会点测量常用的方式有测角的前方交会,侧方交会、后方交会和两点法交会。
1、前方交会方法简便,精度可靠;当待定点的个数多于设站已知点时,能有效地节省工作量,故被广泛应用。
2、侧方交会应用亦较多。后方交会只在待定点上设站,当待定点个数不多时可节省工作量,但若待定点与已知点位于或接近于同一圆周(称为危险圆)上时,将失去求解条件或者点位误差增大至超过允许限度,所以一般只在图形条件良好时使用。
3、两点法交会通常只在条件困难的个别情况下使用。上述几种交会方法的基本特点。
4、用测边代替测角,同样可以进行前方交会、侧方交会、后方交会和两点法交会,称为边交会 。
参考资料来源:百度百科--前方交会
参考资料来源:百度百科--后方交会
参考资料来源:百度百科--交会点测量
Program:using System
using System.Collections.Generic
using System.Linq
using System.Text
namespace 测绘工程
{
class Program
{
static void Main(string[] args)
{
string a
Console.WriteLine("1:距离计算")
Console.WriteLine("2:度、分、秒转换")
Console.WriteLine("3:度与弧度转换")
Console.WriteLine("4:前方交会")
Console.WriteLine("5:距离交会")
Console.WriteLine(" ")
a=Console.ReadLine()
switch (a)
{
case "1"://计算距离
Distance distance = new Distance()
Console.WriteLine("请输入第一个点位坐标:")
distance.X1 = Convert.ToDouble(Console.ReadLine())
distance.Y1 = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个点位坐标:")
distance.X2 = Convert.ToDouble(Console.ReadLine())
distance.Y2 = Convert.ToDouble(Console.ReadLine())
distance.Calcu()
Console.ReadLine()
break
case "2"://度、分、秒转换
zhuanhuan zhuanhuan = new zhuanhuan()
string b
Console.WriteLine("1:度转换为分")
Console.WriteLine("2:度转换为秒")
Console.WriteLine("3:分转换为秒")
Console.WriteLine("4:分转换为度")
Console.WriteLine("5:秒转换为度")
Console.WriteLine("6:秒转换为分")
Console.WriteLine(" ")
b = Console.ReadLine()
switch(b)
{
case "1":
Console.WriteLine("度数:")
double dushu=Convert.ToDouble(Console.ReadLine())
zhuanhuan.A(dushu)
Console.WriteLine("转换后度数为:"+"{0:f4}"+"分",dushu)
Console.ReadLine()
break
case "2":
Console.WriteLine("度数:")
dushu = Convert.ToDouble(Console.ReadLine())
dushu=(zhuanhuan.A(dushu))
dushu = (zhuanhuan.A(dushu))
Console.WriteLine("转换后度数为:" + "{0:f4}" + "秒", dushu)
Console.ReadLine()
break
case "3":
Console.WriteLine("分:")
dushu = Convert.ToDouble(Console.ReadLine())
zhuanhuan.A(dushu)
Console.WriteLine("转换后度数为:" +"{0:f4}"+ "秒", dushu)
Console.ReadLine()
break
case "4":
Console.WriteLine("分:")
dushu = Convert.ToDouble(Console.ReadLine())
dushu = (zhuanhuan.B(dushu))
Console.WriteLine("转换后度数为:" + "{0:f4}" + "度", dushu)
Console.ReadLine()
break
case "5":
Console.WriteLine("秒:")
dushu = Convert.ToDouble(Console.ReadLine())
dushu = (zhuanhuan.B(dushu))
dushu = (zhuanhuan.B(dushu))
Console.WriteLine("转换后度数为:" + "{0:f4}" + "度",dushu)
Console.ReadLine()
break
case "6":
Console.WriteLine("秒:")
dushu = Convert.ToDouble(Console.ReadLine())
dushu = (zhuanhuan.B(dushu))
Console.WriteLine("转换后度数为:" + "{0:f4}" + "分", dushu)
Console.ReadLine()
break
}
break
case "3":
{
string aa
double bb
huduzhi huduzhi = new huduzhi()
Console.WriteLine("1:角度制转换为弧度制")
Console.WriteLine("2:弧度制转换为角度制")
Console.WriteLine(" ")
aa = Console.ReadLine()
if (aa == "1")
{
Console.WriteLine("角度为:")
bb =Convert.ToDouble(Console.ReadLine())
bb=huduzhi.A(bb)
Console.WriteLine("弧度为: "+"{0:f4}",bb)
Console.ReadLine()
}
if (aa == "2")
{
Console.WriteLine("弧度为:")
bb = Convert.ToDouble(Console.ReadLine())
bb=huduzhi.B(bb)
Console.WriteLine("角度为: " + "{0:f4}", bb)
Console.ReadLine()
}
break
}
case "4":
{
jiaohui jiaohui = new jiaohui()
Console.WriteLine("请输入第一个控制点X坐标:")
jiaohui.XA =Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第一个控制点Y坐标:")
jiaohui.YA =Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个控制点X坐标:")
jiaohui.XB =Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个控制点Y坐标:")
jiaohui.YB = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第一个观测方位角(弧度制):")
jiaohui.QBAP = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个观测方位角(弧度制):")
jiaohui.QPBA = Convert.ToDouble(Console.ReadLine())
jiaohui.qianfang()
}
break
case "5":
{
julijiaohui julijiaohui = new julijiaohui()
Console.WriteLine("请输入第一个控制点X坐标:")
julijiaohui.XA = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第一个控制点Y坐标:")
julijiaohui.YA = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个控制点X坐标:")
julijiaohui.XB = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个控制点Y坐标:")
julijiaohui.YB = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第一个控制点与待求点距离:")
julijiaohui.DAP = Convert.ToDouble(Console.ReadLine())
Console.WriteLine("请输入第二个控制与待求点距离:")
julijiaohui.DBP = Convert.ToDouble(Console.ReadLine())
julijiaohui.juli()
}
break
}
}
}
}
如果按你追问里的 前方交会 的话,可以不用棱镜啊,首先必须要有至少2个控制点(假如分别为A,B),在A上架设仪器对中整平,瞄准B后水平角置零,然后瞄准目标点P(比如塔尖),记下水平角度∠BAP,然后将仪器搬至B上架设仪器对中整,瞄准A后水平角置零,然后瞄准目标点P(比如塔尖),记下水平角度∠ABP.(这样计算只有平面坐标,如果需要高程值话还需要量取仪器高,棱镜高,同时还要测量竖直角)。计算公式你可以看这里http://wenku.baidu.com/view/732a0e6b011ca300a6c3901e.html
像你说这种瞄塔尖的方式通常是加密控制点用的,放样的话用后方交会啊,仪器任意架设,瞄准已知点
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)