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 转换,但在平方计算上却没有。

谢谢你。

4

1 回答 1

0

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

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

于 2013-05-15T15:58:22.010 回答