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

ios – 了解CLLocation是否代表陆地或海洋,第1张

概述我正在尝试构建一个API,以便了解CLLocation是否代表陆地.我需要这样才能离线工作,因为我希望大部分用户都没有连接.我使用MapBox作为一个瓦片服务器,但这仍然是一个MapKit问题,因为我没有使用MapBox SDK. 我尝试了几种方法来确定给定的坐标是否代表陆地或海洋位置: >大致构成世界海岸线的坐标系脱机数据库.确定给定点是否在轮廓内部或外部仍然是一个问题. > png tile 我正在尝试构建一个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对象上设置了海洋属性.

总结

以上是内存溢出为你收集整理的ios – 了解CLLocation是否代表陆地或海洋全部内容,希望文章能够帮你解决ios – 了解CLLocation是否代表陆地或海洋所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存