将Json坐标转换为CLLocationCoordinate2D

时间:2013-12-01 08:39:31

标签: objective-c json postgis

我有一个返回地理位置(点和多边形)的服务,对象以字符串形式返回,例如:

“POINT(51.38494009999999 -0.3514684)”

我可以进行字符串操作来提取这两个值但是想知道是否有更好的方法将其转换为CLLocationCoordinate2D。

主要是因为多边形,逐点插入似乎不是正确的解决方案。

2 个答案:

答案 0 :(得分:0)

如果想要一个更合适的结构来表示多边形,可以使用MapKit中的MKPolygon类。它接受一系列CLLocationCoordinate2D点作为它的初始化。如果您计划在应用程序中与MapKit交互,则使用此类可能很方便。否则,可能没有必要这样做 - 然后自定义类可能是所需的容器。

答案 1 :(得分:0)

您看到well-known text,由ST_AsText制作。如果您实际上期待JSON并且您能够修改服务器端查询,请使用ST_AsGeoJSON代替返回:

{"type":"Point","coordinates":[51.3849401,-0.3514684]}

如果您只有点数据,还要考虑返回双精度数据,经度为ST_X,纬度为ST_Y。最后一个建议当然不需要解析文本结果,但不适用于线串或多边形。