您如何发现用户正在使用带有缓冲区的 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 处理后音频口吃