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