1

我在 SQLite 数据库中存储了一些点特征,以便在 MKMapView 中显示,我想在地图的投影中而不是在纬度/经度中预先计算和存储坐标(出于索引/性能原因)。但是,我在外部(在 Python 中)创建这个数据库,所以我不能简单地使用 MKMapPointForCoordinate() 函数。MKMapView 使用的投影是什么?该文档指出它是一个 墨卡托投影,但它似乎不是我预期的网络墨卡托投影。如何从 Lat/Lon 计算 X/Y 坐标?

4

2 回答 2

3

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

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

Apple 还告诉您只保存坐标而不是MKMapPoints在他们自己的文档中:

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

也许您可以分享一些您在将坐标保存到数据库时遇到的问题?

于 2012-08-12T17:23:36.290 回答
1

我很确定它是 webmercator,因为我制作的覆盖图块在那个投影中并且它们适合。但就像其他评论者所说的那样,建议您将它们存储在纬度/经度中。如果您想在网格 lat/long 中查询结果,请提供一个很好的起点。当您离开赤道时,网格不是方形的,而是矩形的。

于 2012-08-13T15:50:35.233 回答