2013-05-15 39 views
0

我有部分世界地图(如美国或非洲)。我需要知道基于部分/裁剪地图像素大小的大小的世界地图的像素大小。如何获取完整地图的像素大小?

我有尺寸在部分地图的像素(像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转换,但没有在平方计算。

谢谢。

回答

0

这是一个想法。首先计算由longLongitude,maxlongitude,minlatitude,maxlatitude指定的矩形区域。然后,可以使用当前地图面积与整个世界地图面积的比例,将当前占用地图的当前像素数量放大为整个地图所需的像素数量。

为了确定地图目前占用的区域,我认为你需要一些球形三角,你可以找到你需要的东西here on wikipedia。维基百科页面为您提供了一个球面三角形面积的公式,所以如果您将您的矩形看作两个三角形,则可以使用该公式并计算当前地图的面积。