从 SQLite 读取坐标并创建一个 MKPolygon

Posted

技术标签:

【中文标题】从 SQLite 读取坐标并创建一个 MKPolygon【英文标题】:read coordinates from SQLite and create a MKPolygon 【发布时间】:2014-07-26 11:58:14 【问题描述】:

我找到了很多示例,但我仍然无法成功在 MKMapView 上显示动态创建的 MKPolygon。 我有一个具有多边形坐标的 SQLite 数据库。我想从 db 中读取坐标,然后创建一个多边形。应该不难。

首先我读取行然后我计算记录中的坐标数(dbCount)然后我创建一个这样的数组:

CLLocationCoordinate2D *dbCoord = (CLLocationCoordinate2D *) malloc(sizeof(CLLocationCoordinate2D) * dbCount);

然后在 for 循环中,我将坐标填充到 dbCoord 数组中,如下所示:

  for (something) 
    CLLocationCoordinate2D latLon; 
    latLon.latitude = latFromDb;
    latLon.longitude = lonFromDb;
    dbCoord[recCounter] = latLon;
    recCounter++
  

但 dbCoord 数组不包含所有坐标。 recCounter 正在增加每个循环,但该数组中只有一项。

【问题讨论】:

for 循环中,latFromDblonFromDb 没有变化。它们设置在哪里?最好显示真实代码而不是看起来像伪代码。从这个模糊的描述来看,它不起作用的原因太多了。您需要进行一些调试以缩小问题范围,然后将实际代码发布到您发现它没有按照您认为应该做的事情的地方。 【参考方案1】:

终于找到了!原因是dbCoord的定义

我已经添加了

@property (nonatomic, readonly) CLLocationCoordinate2D *dbCoord;

插入 .h 文件,我的代码现在可以工作了

【讨论】:

以上是关于从 SQLite 读取坐标并创建一个 MKPolygon的主要内容,如果未能解决你的问题,请参考以下文章

更新 blob 后,Android sqlite 无法读取

从 SQLite 数据库读取日期时间值并使用 WPF 将其分配给 C# 中的 datepicker

在 android 应用程序中从 Sqlite 数据库中读取数据。

Android java从sqlite计算距离许多坐标[重复]

启用 WAL 的 SQLite 数据库在读取时阻止用户

Android 使用SQLite存储以及读取Drawable对象