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

时间:2015-03-19 10:46:17

标签: ios location core-location core

我使用谷歌地图sdk开发了一个位置基础应用程序。如何获得没有位置服务的当前位置(即位置服务不允许)。我想使用移动数据或wifi网络获取当前位置

3 个答案:

答案 0 :(得分:3)

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

根据Apple Docs

  

对于您使用的服务,请准确配置与该服务关联的所有属性。核心位置通过在不需要时关闭硬件来积极地管理电源。 例如,将位置事件的所需精度设置为1公里,使位置管理员可以灵活地关闭GPS硬件并完全依赖WiFi或手机无线电,这可以显着节省电力。 / p>

因此,考虑到您的应用所需的准确性,CoreLocation决定在何处获取该位置。但是你还需要得到许可。

如果你只需要这个国家,那么Dan在他的回答中提出的基于IP的方法可能足以满足你的需求。

答案 1 :(得分:1)

我认为你不能。更重要的是苹果会允许这样的事情吗?可能不是,取决于你如何去做。

但是有一个想法,就是你可以在线查看是否有一些在线服务可以通过一个简单的API请求传递给你当前的位置。它很可能会使用用户的IP地址来确定您的位置。但是,如果用户使用像VPN这样简单的东西,那么这将无法返回正确的位置。最后,如果您使用这样的方法,请确保首先提示用户获得他们的许可,否则Apple将拒绝您的应用。

<强>更新

这是一项值得一看的免费服务:http://www.ipaddresslabs.com/IP-GeoLoc-ip-address-geolocation-locator-lookup-database-software-geography-country-region-state-county-province-city-postal-zip-code-metro-area-code-latitude-longitude@IP-GeoLoc

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

这里的限制是,如果用户没有互联网连接,那么这不会起作用。因此,如果您在森林中间​​或其他地方,那么这可能不是最好的选择。

你真的应该使用CoreLocation,它会使用GPS,并会给你一套非常准确的坐标。

答案 2 :(得分:0)

使用技术上与Core Location分开的CLLocationManager和MKMapViewDelegate,可以不必不必实现Core Location的框架。

具体来说,确实更新了userLocation函数,该函数实现了纬度,经度,中心,跨度和区域以找到您的当前位置。

别忘了在info.plist文件中添加“隐私-使用中使用情况描述时的位置”权限。