0
在Bing地图控件上绘制一条通过180度经度的线不能像我所期望的那样工作。如果我想画一条从(10,175)到(-10,-175)的直线 - 期望在(10度)线穿过赤道的北部,新西兰 - 我得到了一条延伸到全球的线路,穿过0度长的赤道(格林威治南部)。我如何绘制一条横贯180度长的线?通过180度长在Bing地图上绘制一条线
在Bing地图控件上绘制一条通过180度经度的线不能像我所期望的那样工作。如果我想画一条从(10,175)到(-10,-175)的直线 - 期望在(10度)线穿过赤道的北部,新西兰 - 我得到了一条延伸到全球的线路,穿过0度长的赤道(格林威治南部)。我如何绘制一条横贯180度长的线?通过180度长在Bing地图上绘制一条线
,能够近似这由几乎在180度子午线绘制两条直线,从点一个然后从刚刚过去的180度子午线指向b。因此,在返回的IEnumerable<MapPolyLine>
,其中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;
这可以进一步清理和仅仅是一个解决办法。也有一些文物可以出现,但这似乎很可靠。
端点具有不同的纬度,这意味着该线穿过赤道。你确定这就是你想要的吗? – michaelb958 2013-04-26 02:06:57
是的,穿过赤道的线是无关紧要的。我期待在新西兰北部10度的地方穿过赤道的一条小直线,但Bing Maps正在画出大约350度长的线。我会在我的问题中澄清这一点。 – 2013-04-26 02:34:00