您如何发现用户正在使用带有缓冲区的 CoreLocation 的美国州?

Posted

技术标签:

【中文标题】您如何发现用户正在使用带有缓冲区的 CoreLocation 的美国州?【英文标题】:How can you discover the US State that a user is in using CoreLocation with a buffer zone? 【发布时间】:2013-10-13 23:16:17 【问题描述】:

基本上,我正在尝试创建一个需要检测用户当前所在的美国州的应用程序。为了解决某人处于一个州(或多个州)边界的问题,我在想关于为每个州创建一个 X 英里的缓冲区(或 X 度,因为纬度/经度以度为单位)。

我真的不确定如何使用 lat/lon 来检测状态。我需要订阅诸如谷歌反向地理定位之类的网络服务,还是它内置在 iPhone 中?

另外,我不能 100% 确定这个“缓冲区”是否是一个好主意,但如果不是……在没有真正处于州被告知他们不仅仅是因为他们住在边境?

【问题讨论】:

【参考方案1】:

与州边界的距离逻辑取决于您。但是您可以根据latlng 信息轻松确定您处于哪个状态。

例如,Google API。http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false

提供您可以轻松解析的位置详细信息。在地址组件下查找带有administrative_area_level_1 标记的条目:


   "long_name" : "New York",
   "short_name" : "NY",
   "types" : [ "administrative_area_level_1", "political" ]
,

如果你想保持原生 ios,可以查看MKReverseGeocoder

【讨论】:

【参考方案2】:

如果使用网络服务,您必须将州边界的坐标作为多边形获取。 然后在多边形操作中做一个点。

如果您使用 GPS 作为定位设备,其精度通常在 10m 以内。 对于居住在边境附近的人来说,这应该没有问题。 然而,如果边​​界穿过房子,这也无济于事。 忽略那个缓冲区,集中精力让其余的工作。

【讨论】:

以上是关于您如何发现用户正在使用带有缓冲区的 CoreLocation 的美国州?的主要内容,如果未能解决你的问题,请参考以下文章

带有 AVAudioConverterInputBlock 的 AVAudioConverter 处理后音频口吃

如何使用带有 alpha 掩码的模板缓冲区

如何使用带有转换映射的节点 js 缓冲区

带有循环缓冲区的字符驱动程序

如何在带有 Qt 的 OpenGL 中使用顶点缓冲区对象绘制矩形?

如何使用 Node.js 创建带有缓冲区的读取流