Android 上的位置感知地理编码(就像 Google 地图)
Google 地图应用中的搜索似乎是位置感知的。例如,如果我在悉尼搜索“Pitt St”,它会立即找到正确的街道。单击“您是说...”会显示附近郊区中其他“Pitt St”的列表。
有没有办法在我们的应用程序中获得类似的体验?我尝试了标准 Geocoder,但类似的搜索返回“Pitt St,纽约”作为第一场比赛。
- 我缺少一组选项吗?
- 我们可以使用不同的 API 来实现此目的吗?
- 作为最后的手段,您认为手动实现这一点是否合理,例如通过查询最大半径为 1 公里、10 公里、100 公里的地理编码器,然后按距离对结果进行排序?
干杯
罗曼
It seems that the search in the Google Maps app is location aware. For example, if I search for "Pitt St" while in Sydney, it finds the right street straight away. Clicking "Did you mean..." brings a list of other "Pitt St" close in nearby suburbs.
Is there a way to ge a similar experience in our apps? I tried the standard Geocoder, but a similar search returns "Pitt St, New York" as the first match.
- Is there a set of options I'm missing?
- Is there a different API we can use for this?
- As a last resort, do you think it's reasonable to implement this manually, for example by querying the Geocoder with a max radius of 1km, 10km, 100km, and then sorting the results by distance?
Cheers
Romain
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用了哪个功能?
Geocoder.getFromLocationName()
采用一个边界框,允许您将结果限制在某个区域,因此您可以先获取当前 GPS 位置并将其传入。或者,您可以通过 < a href="http://code.google.com/apis/maps/documentation/geocoding/" rel="nofollow">Geocoder API 更灵活,但在 TOS 方面也更具限制性,更不用说还有很多工作需要使用。 (我不确定 TOS 中是否涵盖了从 Android 应用程序使用它,我没有仔细查看)。
Which function did you use?
Geocoder.getFromLocationName()
takes a bounding box that allows you to limit the results to a certain region, so you could get the current GPS position first and pass that in.Alternatively, you could go through the Geocoder API which is more flexible, but also more restrictive in terms of the TOS, not to mention a lot more work to use. (I'm not sure if using it from an Android app is covered in the TOS, I haven't looked at it much).