如何用BingMap计算地图4个角(边)的坐标?

Posted

技术标签:

【中文标题】如何用BingMap计算地图4个角(边)的坐标?【英文标题】:How to calculate the coordinates of the 4 corners (edge) of the map with BingMap? 【发布时间】:2013-03-06 19:38:12 【问题描述】:

我从几天前开始使用 bing。我可以显示带有我的 bing 地图坐标经度和纬度的图像。

但是我想计算我的图像的 4 个边缘中的位置坐标。 现在我唯一知道的是原点的中心点。 问题是我仅限于 API。我为一个游戏 xna c # 工作,不幸的是 不能使用微软的 Class Map :-(。http://msdn.microsoft.com/en-us/library/hh846504.aspx

我知道以下值:(样本值)

级别缩放:17

图像宽度:800 像素

图像高度:800 像素

纬度:46.6023

经度:7.0964

是否可以用这5个已知值来计算我的图像4个角的坐标?这是一张解释我想要的图。 非常感谢

【问题讨论】:

你需要精确到什么程度......一些基本的三角可能会让你接近,但如果你必须考虑地球的曲率,它会变得非常混乱 是的,好的。但我的变焦相当高。我的矩形覆盖大约 4 公里,平均 4 公里。这是一张小地图。所以曲率没有太大的影响。我正在寻找一个算法/数学公式来计算这个“近似值” 这就是我问的原因......但一个问题是当你到达更高的纬度时,1度经度的“大小”可能会变得非常小,所以你需要考虑到这一点如果您要处理极端北纬和南纬的地图,则适用于任何算法 啊,好吧。我明白。非常感谢您的提示。正是为了计算整个地图的高程。这是他的我需要四个角协调。要确定一个区域矩形我的卡 【参考方案1】:

基于 17 级缩放的 bing maps api 给出的 1.19 m/像素比例,这给了我们 800 * 1.19 = 95'000 米的边缘 (http://msdn.microsoft.com/en-us/library/aa940990.aspx)

你应该可以这样计算:(算法:https://gis.stackexchange.com/questions/2951/algorithm-for-offsetting-a-latitude-longitude-by-some-amount-of-meters)

 //Position, decimal degrees
 lat = 46.6023
 lon = 7.0964

 //Earth’s radius, sphere
 R=6378137

 // DO THE SAME FOR B C D

 //offsets in meters for A
 dn = -47600
 de = -47600

 //Coordinate offsets in radians
 dLat = dn/R                      // -0.0074629942881440144669203562106
 dLon = de/(R*Cos(Pi*lat/180))    // -0.00746374633301685016002447644032

 //OffsetPosition, decimal degrees
 latA = lat + dLat * 180/Pi // 46.174701924759107796879309401922
 lonA = lon + dLon * 180/Pi // 6.6687588357618898589751458712973

这使用简化的平面地球计算,这不是最准确的方法,但应该可以满足您的需要。

【讨论】:

哇哇哇!!非常感谢 !谢谢你抽出时间来找我!这就是我所说的“一个真正好的答案”^ ^

以上是关于如何用BingMap计算地图4个角(边)的坐标?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 计算围绕中心点的四个角的地理坐标点

如何用百度地图自定义路线并导航

如何用Matlab画出一组坐标点,并且将这组坐标点按照X坐标从小到大的顺序连线,

自定义地图中的相对坐标计算

matlab如何用鼠标选取fig图上的区域并获得坐标值

C# 计算地图上某个坐标点的到多边形各边的距离