2012-02-13 143 views
2

谁能指出我在正确的方向来理解MKMapPoint疑难解答MKMapPoint(S)

我明白,它必须在2D表面上铺设地球表面。但我不明白每个“点”是如何衡量的?

任何人都可以给我一个代码示例吗?

回答

1

没有什么过多的工作..只是一个2D地图上显示点的结构......这里是文件说什么..

MKMapPoint在二维地图投影的点。

typedef struct { double x; double y; } MKMapPoint;

字段x沿着x轴的点的位置 贴图。 y沿着y轴的点的位置 地图。讨论如果将地球仪 的曲面投影到一个平面上,您将得到的是一个经纬线看起来平行的二维版本的 地图。这些地图通常是用于一次显示地球的整个表面的 。一个 MKMapPoint数据结构表示这个二维地图上的一个点。

地图点的实际单位被绑定到使用的基础单位 来绘制MKMapView的内容,但您不应该直接需要 担心这些单位。您主要使用地图点来简化在曲面上使用坐标 的值很复杂的计算。通过转换为地图点,您可以在平坦的表面上执行这些计算,这通常比较简单,然后根据需要转换回来。您可以使用MKMapPointForCoordinate和 MKCoordinateForMapPoint函数在 坐标值和地图点之间进行映射。

将地图相关数据保存到文件时,应始终保存 坐标值(纬度和经度),而不是保存地图点。

可用性iOS可用于iOS 4.0和更高版本。在MKGeometry.h中声明

+0

因此MKMapPoint/Rect x增加西,y增加南? – Barry 2014-09-07 06:28:11

0

如果您想在某个真实世界大小的地图上绘制某些东西,例如一个刻度,那么在您的计算中,您将以米为单位乘以任何给定长度的结果的MKMapPointsPerMeterAtLatitude(...)以获得MKMapPoint单位的大小。

如果您的地图仅显示地球的一小部分,MKMapPointsPerMeterAtLatitude(...)将为地图中涉及的所有纬度提供大致相同的恒定值。在这种情况下,您可以简单地使用地图中间的纬度作为此函数的参数。

0

另请阅读文档中使用墨卡托投影进行转换。这里有一个额外的观察:北向(y)轴方向似乎与标准墨卡托投影的方向相反(正方向向下而不是向上)。

+2

这将是更好的评论 – Vader 2014-02-06 19:18:30