如何获得完整地图的像素大小?

时间:2013-05-15 09:53:01

标签: android geolocation geospatial projective-geometry

我有部分世界地图(如美国或非洲)。我需要根据部分/裁剪地图像素大小的大小知道世界地图的像素大小。

我的部分地图的像素大小(如480x256),我有minLongitude,maxlongitude,minlatitude,maxlatitude(又名左,右,上,下边缘)

我知道经度很容易因为线性:

FULL_CIRCLE_DEG = 360

longitudeDelta = (maxLongitude-minLongitude)/FULL_CIRCLE_DEG

MapFullSize = mapCroppedWidth/longitudeDelta

但是对于纬度来说,它有点不同:

FULL_LATITUDE_DEG = MAX_LAT_ON_EARTH - MIN_LAT_ON_EARTH(如85.7543 ......( - 85.7543 ......))

latitudeDelta = (maxLatitude-minLatitude)/FULL_LATITUDE_DEG

MapFullHeight = ????

请有人可以帮助我吗?

我找到很多算法来获得GPScoordinateToPixel转换,但没有任何关于平方计算。

谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个想法。首先计算出由minLongitude,maxlongitude,minlatitude,maxlatitude指定的矩形区域。然后,您当前地图区域与整个世界地图区域的比率可用于将地图当前占据的当前像素数量放大到整个地图所需的像素数。

要计算出地图当前占据的区域,我认为你需要一些球形三角学,你可以找到你所需要的here on wikipedia。维基百科上的那个页面为您提供了球形三角形区域的公式,因此如果您将矩形视为两个三角形,则可以使用该公式并计算当前地图的区域。