2010-06-19 96 views
2

http://wiki.openstreetmap.org/wiki/Mercator墨卡托投影和缩放

有了上面的链接的C#示例中,我能够投射经/纬度为x/y坐标。但是,我遇到缩放问题。我想知道投影后每个像素有多少长度(以英里为单位?)。我想在渲染之前将地图缩放为每英里500像素或类似的东西。

伙计们,真的没人回答这个问题吗?这是很长时间没有答案。

+2

http://msdn.microsoft.com/en-us/library/bb259689.aspx这一个解释我需要知道的一切。 ;) – VOX 2010-06-19 16:26:21

回答

1

像素长度不一样,这取决于你投射的地球的哪个区域。 mercator保留角度,而不是长度。

http://en.wikipedia.org/wiki/Mercator_projection

看地图 - 周围的两极区域被放大相比,赤道。根据你想要做什么,你最好使用标准化的投影,比如UTM。你应该检查在你的地图所在世界的哪个地方使用了哪个投影。

另一种方法是将反向投影应用于两个像素以获取地理坐标并测量它们之间的大圆距。维基百科有更多的信息,但通常涉及一些数学。

+0

横轴墨卡托继承了墨卡托的相同属性。但是,如果你坚持一个小区域(每英里500像素,你可能就是!),并使用适当的UTM区域,那么在整个地图上的比例将会接近足够。 – MarkJ 2010-06-23 13:55:53