1

嗯,我有一个地板的图像。我需要做的是获取用户的当前位置并将其显示在地板图像上。我知道我需要将 lat 和 lon 转换为像素并将其指向自定义地图。

我按照这个将 GPS 坐标转换为坐标平面。但我无法正确理解它。差远了。可能是因为建筑面积小(不知道能不能小面积开发)。我查了一下其他问题。它只是硬编码。我不想这样做。

因此,如果有人向我提供任何合乎逻辑的想法或代码示例或教程,那将会很有帮助。什么都会好的。提前致谢!!:-)

lat = 12.875538;
longitudeVal = 80.227112;

delta_lat = 0.0001;      // Adjust Y
delta_long = 0.0001;    // Adjust X 

/* length */ delta_x = 130; // 130 
/* width */ delta_y = 70;  // 70

vertical_scale = delta_y/delta_lat;
horizontal_scale = delta_x/(cos(lat)*delta_long);

/* lati */ x = (6378.1 * (1+sin(lat))/cos(lat));
/* long */ y = (6378.1 * longitudeVal); 

x = x / horizontal_scale;
y = y / vertical_scale;

/*    y = ((-1 * lat) + 90) * (delta_x / 180);
x = (longitudeVal + 180) * (delta_y / 360);*/

NSLog(@"lat %f long %f x %d y %d",lat,longitudeVal,x,y); 
4

1 回答 1

0

在我看来,您好像犯了一个非常常见的错误。您的纬度和经度以度为单位,但sin其他三角函数采用以弧度为单位的参数。

您可能还会犯其他错误,但只是告诉我们代码错误而不告诉我们它是如何错误的,并不能为我们提供太多线索。

于 2012-08-16T07:10:57.990 回答