Windows runtime 在Bing地图上画一条180度长的线

Windows runtime 在Bing地图上画一条180度长的线,windows-runtime,windows-store-apps,bing-maps,Windows Runtime,Windows Store Apps,Bing Maps,在Bing地图控件上绘制一条经度为180度的直线并不像我预期的那样有效。180度的经度从北向南穿过太平洋,所以如果我想画一条从(10175)到(-10,-175)的线——预计有一条小的(10度)线穿过新西兰以北的赤道——我会得到一条贯穿全球的线,以0度的速度穿过赤道(格林威治以南)。我如何画一条横穿180度的线 可以通过画两条线来近似这一点,从几乎位于180度子午线上的点a开始,然后从刚好经过180度子午线到点b。因此,在返回IEnumerable的方法中,a是具有负经度的最近点,b是具有正经度

在Bing地图控件上绘制一条经度为180度的直线并不像我预期的那样有效。180度的经度从北向南穿过太平洋,所以如果我想画一条从(10175)到(-10,-175)的线——预计有一条小的(10度)线穿过新西兰以北的赤道——我会得到一条贯穿全球的线,以0度的速度穿过赤道(格林威治以南)。我如何画一条横穿180度的线

可以通过画两条线来近似这一点,从几乎位于180度子午线上的点a开始,然后从刚好经过180度子午线到点b。因此,在返回
IEnumerable
的方法中,
a
是具有负经度的最近点,
b
是具有正经度的最近点:

var aa = Math.Abs(b.Longitude - a.Longitude - 360);
var bb = Math.Abs(b.Latitude - a.Latitude);

var aaa = 180 + a.Longitude;
var bbb = (bb / aa) * aaa;

var line1 = new MapPolyline
{
    Color = Color.FromArgb(255, 0, 255, 0),
    Width = 5
};
line1.Locations.Add(a);
line1.Locations.Add(new Location(a.Latitude - bbb, -179.999));
yield return line1;

var line2 = new MapPolyline
{
    Color = Color.FromArgb(255, 0, 0, 255),
    Width = 5
};
line2.Locations.Add(new Location(b.Latitude + bb - bbb, 179.999));
line2.Locations.Add(b);
yield return line2;

这可以进一步清理,只是一个解决办法。也可能出现一些伪影,但这似乎相当可靠。

端点的纬度不同,这意味着这条线穿过赤道。你确定这就是你想要的吗?是的,穿过赤道的线是不相关的。我希望有一条横穿新西兰北部10度赤道的小线,但Bing地图绘制的这条线大约有350度长。我将在我的问题中澄清这一点。