2012-08-12 65 views
1

我在一个SQLite数据库中存储了许多点要素,以便在MKMapView中显示,我想预先计算并将坐标存储在地图的投影中,而不是在纬度/经度上(出于索引/性能的原因)。不过,我在外部创建这个数据库(使用Python),所以我不能简单地使用MKMapPointForCoordinate()函数。什么是MKMapView使用的投影?该文件指出这是一个mercator projection,但它似乎不是我预期的web mercator投影。如何计算Lat/Lon的X/Y坐标?MKMapView使用什么投影?

+0

请发布代码..这将有助于我们更好地了解问题 – 2012-08-12 16:31:35

回答

3

就我个人而言,我觉得你从错误的角度来看待问题 - 你说不想为索引/性能原因存储纬度/经度坐标。这些原因是什么?

存储,索引和查询数据库内的地理坐标不是一个不寻常的问题。它们只是两个十进制数字,使索引和查询非常简单。

苹果还告诉你,只保存坐标,而不是MKMapPoints自己的文档中:

当保存地图相关的数据文件,你应该一直留有坐标值(经度和纬度)和不是地图点。

也许你可以分享一些你将坐标保存到数据库的问题吗?

+0

我在文档中提出了关于Apple建议的观点。我没有看到这个。据推测,他们这样做是为了让他们有自由改变未来的预测。不过,您可能想知道投影的原因有很多。我想尝试通过将特征聚合到矩形图块来加快查询速度。如果瓷砖在贴图坐标中,这会更好。 – 2012-08-12 23:11:46

1

我很确定它是webmercator,因为我制作的叠加拼贴在那个投影中,它们很合适。但是和其他评论家说的一样,建议您将其存放在经纬度。如果你想在网格中查询结果,经纬度提供了一个很好的起点。离开赤道时网格不是正方形,而是矩形。