繁体   English   中英

xcode-如何在没有CoreLocation的情况下找到您的当前位置

[英]xcode - How to find your current location without CoreLocation

我已经使用Google Maps SDK开发了一个基于位置的应用程序。 没有位置服务(即位置服务不允许),如何获取当前位置。 我想使用蜂窝数据或wifi网络获取当前位置

要使用wifi或蜂窝网络获取位置,您必须使用CoreLocation并获得用户的许可才能获取其位置。

根据Apple Docs

对于您使用的服务,请准确配置与该服务关联的所有属性。 核心位置通过在不需要时关闭硬件来积极管理电源。 例如,将位置事件的期望精度设置为一公里,可以使位置管理器灵活地关闭GPS硬件,而仅依靠WiFi或蜂窝无线电,这可以节省大量电能

因此,考虑到您对应用程序所要求的准确性,CoreLocation决定了从何处获取位置。 但是您仍然需要许可。

如果您只需要这个国家或地区,Dan在他的回答中建议的基于IP的方法可能足以满足您的需求。

我认为你不能。 更重要的是,苹果公司会允许这种事情吗? 可能不是,这取决于您的处理方式。

但是我想到的是,您可以上网查看是否有一些在线服务可以通过简单的API请求将您的当前位置传递给您。 它很可能会使用用户的IP地址来确定您的位置。 但是,如果用户使用的东西像VPN一样简单,则不会返回正确的位置。 最后,如果您使用这种方法,请确保首先提示用户输入其权限,否则Apple将拒绝您的应用程序。

更新

这是一项值得一看的免费服务: http : //www.ipaddresslabs.com/IP-GeoLoc-ip-address-geolocation-locator-lookup-database-software-geography-country-region-state-county-全省城市邮政,邮递区号,城域码-经纬度@ IP-GeoLoc

它允许您传递用户的IP地址以换取其当前位置。 我相信它会传回一个非常容易解析的简单JSON文件。 然后,您可以根据需要在应用中使用已解析的位置信息。

这里的限制是,如果用户没有互联网连接,则将无法使用。 因此,如果您在森林中或其他地方,那么这可能不是最佳选择。

您确实应该使用CoreLocation ,它使用GPS并会返回一组相当准确的坐标。

您可以通过使用CLLocationManager摆脱不必实现Core Location框架的烦恼,该技术在Core Location和MKMapViewDelegate之间在技术上是分开的。

具体来说,确实执行了纬度,经度,中心,跨度和区域的update userLocation函数来查找您的当前位置。

不要忘记在info.plist文件中添加“隐私-使用中使用时的位置描述”权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM