ios – 了解CLLocation是否代表陆地或海洋

前端之家收集整理的这篇文章主要介绍了ios – 了解CLLocation是否代表陆地或海洋前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试构建一个API,以便了解CLLocation是否代表着陆地.我需要这样才能离线工作,因为我希望大部分用户都没有连接.我使用MapBox作为一个瓦片服务器,但这仍然是一个MapKit问题,因为我没有使用MapBox SDK.

我尝试了几种方法来确定给定的坐标是否代表陆地或海洋位置:

>大致构成世界海岸线的坐标系脱机数据库.确定给定点是否在轮廓内部或外部仍然是一个问题.
> png tile资源的颜色分析(必须是更好的方法!还需要大量的离线数据可用,以便成为有效的方法)

还有(在处理上述内容之后)是否有一种有效的方式来决定给定瓦片坐标(x,y,z)是否是陆/海/海岸瓦片?

如果有人曾经在这个问题上奋斗,我会在这里感谢一些建议.

解决方法

别担心,好像苹果已经想到了这个问题!

如果您看看CLGeocoder类(CoreLocation),则有一个reverseGeocodeLocation:completionHandler:method.

在完成处理程序中,您可以检索一个CLPlacemark对象数组

CLPlacemark有两个有趣的属性

[地标内陆水域]

For coordinates that lie over an inland body of water,this property contains the name of that water body—the name of a lake,stream,river,or other waterway.

和[地标海洋]

coordinates that lie over an ocean,this property contains the name of the ocean.

因此,您只需要对您的位置进行反向地理编码,并检查是否在所生成的CLPlacemark对象上设置了海洋属性.

原文链接:https://www.f2er.com/iOS/328601.html

猜你在找的iOS相关文章